小学沫
2015-01-29 12:23
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100]="";
char s2[]="我爱,";
char s3[]="慕课网";
/*在以下补全代码*/
strcat(s2,s3); /*s3接到s2后面*/
strcpy(s1,s2); /* 把s2复制到s1 */
printf("%s\n",s1);
return 0;
}
最短长度==s1的长度+s2的长度-1.
s2的长度至少要有12字节才能完整的连接两个字符串,然而默认的长度仅为4字节,运行岂能不出错?
不要这样写,这不是什么性能问题。虽然可以编译通过,但这种写法根本就是个bug!有严重的隐患,可能会引起程序崩溃。
因为strcat要求第一个参数要有足够的长度来容纳拼接后的字符串,而你的s2是一个长度只有4的字符数组,这样就造成了数组后面的内容被覆盖,将引起不确定的结果!
strcat这样的函数是error-prone(易出错)的,一定要小心使用。
如果还不明白,我在这里有详细的解答: http://www.imooc.com/qadetail/64628
这样写,理论上是可行的,但是这在C语言中,很影响性能的,你可以在本地尝试一下
C语言入门
926212 学习 · 20797 问题
相似问题