A-A+
下面的程序实现字符串的复制。 void copy_string(from to) 【 】;
问题详情
下面的程序实现字符串的复制。 void copy_string(from,to) 【 】; { for(;*from;from++,to++) *to=*from; 【 】; } main() { char *a="I am wang",*b="you are Li"; printf ("%sn%sn",a,b); 【 】; printf("%sn%snn",a,b); }
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:char*from *to*to="\0"copy_string(a b)
函数copy_string()用到了形参from,to是指针变量,实参a、b是字符串指针,第一个空格应填形参说明语句“char*from,*to”。当from所指的字符串全部复制给to所指的字符串时,有可能to所指原字符串长度大于from所指字符串长度,即可能to所指串的后面字符仍留在复制后的to所指串中。为避免这种情况,必须在from所指串复制完后,马上给to所指串加上串结束符。因此,第二个空格应填*to="\0"。main()函数应调用copy_string()函数,第三个空格应填copy_string(a,b)。