大神帮忙看一下这个字符串复制的程序
#include<stdio.h>void string_copy(char from[],char to[]);
void string_copy_pointer(char *from,char *to);
int main()
{
char a[] = "I love programing!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
char b[] = "I don't love programing!!!";
printf("复制之前a:%s\n",a);
printf("复制之前b:%s\n",b);
string_copy(a,b);
printf("复制之后a:%s\n",a);
printf("复制之后b:%s\n",b);
return 0;
}
void string_copy(char from[],char to[])
{
int i= 0;
while(from != '\0')
{
to = from;
i++;
}
to = '\0';
}
void string_copy_pointer(char *from,char *to)
{
int i = 0;
while(*(from+i) != '\0')
{
*(to + i) = *(from +i);
i++;
}
*(to+i) = '\0';
}
为什么复制之后字符串啊的值成了:!!!!!!!!!
而不是先前的I love programing!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
void string_copy(char from[],char to[])
{
int i = 0;
int j = strlen(to);
while(from != '\0')
{
to = from;
i++;
j++;
}
to = '\0';
}
复制的话应该将a接在b的末尾 char b[] 和char a[] 长度不同,把a[]复制给b[]相当于对b进行了越界写入
页:
[1]