废寝忘食陈同学
2019-08-02 22:21
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100]="";
char s2[]="我爱,";
char s3[]="慕课网";
/*在以下补全代码*/
strcat(s2,s3);
strcpy(s1,s2);
printf("%s\n",s1);
return 0;
}
这是我的代码 我的输出结果没问题 但这样对吗 那个拼接的可以这么写吗 他说s2要有足够的内存 这样会不会不够
strcpy(s1,s2);
strcat(s1,s3);
不可以的 你的strcat(S2,S3);实际就是不能完成的 因为S2的内存空间已定短于S3 理论上是放不下S2+S3的 而输出正确的原因是你恰好把 S2+S3又STRCPY了S1(去掉这一步会出错) S1有足够的空间 至于CAT那一步为什么还是把数据存下来了 我认为和内存的分配有关
可以的,不写长度好像是无限(应该有限2333)
C语言入门
926021 学习 · 20793 问题
相似问题