不对。
strcat(dst,src)是把src字符串链橡粘在dst字符串后面,但是上面str1的空间不够存放str1+str2的族慎内容。
int main(){
char str1[64]="china "棚穗旁;
char str2[]="is good\n";
strcat(str1,str2);
printf("%s\n",str1);
system("PAUSE");
return 0;
}
LS说粗察的很对,就算你局纳能运行,也是隐含错误的,我用VC6.0能编译,运行的时岩腊茄候出错。
这个str1[] ="china"运行有没错误取决于编译器究竟给没指定大小的str分配了多少的空间,够用的话运行不会有错误,但是你去试试把str2改的相当长,应该就会出问题了。暂时没错误不代表真的没错误。
可以么。我在vs 2005中运行崩溃了,明显的内存非法访问。
#include
#include
#include
int main(){
char str1[20]="锋袭尘china ";
char str2[20]="is good\n"银禅;
char *p = strcat(str1,str2);
puts(p);
system("PAUSE");
return 0;
}
修改下函数体里面的代码
数组定义轮弯长度后不能在改变大小,用strcat也是新定义了一个足够大伍竖的数组,连接起来后又把数组名该了过来腊橘闷,
int i=0,j=0;
char strm[50];
// while(str1[i]!='\0')strm[i]=str1[i];
for(i=0;i
}
//while(str2[j]!='\0')
for(j=0;j
}
strm[j+i]='\0';
return strm;