大神帮小弟
#include<stdio.h>void copy(char *from,char *to)
{
while((*to=*from)!='\0')
{
to++;
from++;
}
//*to='\0';
}
int main()
{
int flag=0;
char a[]="i am a teacher.",b[]="you are a student.";
printf("%s %s\n",a,b);
copy(a,b);
for(int i=0;b!='\0';i++)
{
printf("%c",b);
}
}
把字符数组a换到b中去,在调用函数copy(a,b)中我把最后一句去掉了,表示没有把'\0'弄到b中去,那么最后b应该是i am a teacher.nt.可是为什么我输出的仍然是i am a teacher.??不懂啊,按道理不应该啊 卤煮,你想过没有,当from字符串到达最后一个元素,*to = *from 这一句执行完之后to字符串的最后一个元素也是'\0',这个时候肯定截断了。
from : AAA\0
to : BBBBB
拷贝完之后,to内存中BBB\0B 但是可惜的是,你输出的时候判断了,'\0'就不输出了。
n0noper 发表于 2016-4-26 09:50
卤煮,你想过没有,当from字符串到达最后一个元素,*to = *from 这一句执行完之后to字符串的最后一个元素也 ...
瞬间顿悟
页:
[1]