为了账号安全,请及时绑定邮箱和手机立即绑定

为啥先strcat(s2,s3);再strcpy(s1,s2);会报错?

如题,不太懂

正在回答

2 回答

s1是一个长度为100的字符数组。

s2是一个长度为4的字符数组。

s3是一个长度为4的字符数组。

strcat(s2, s3) 这个函数是将s3中的内容(包括s3结尾的'\0')复制到s2中最后一个字符的后面(覆盖掉s2原来结尾的'\0'),这样就能把两个字符串中的字符连起来了,并且还是'\0'结尾。

但这需要s2有足够的长度来容纳这么多的字符,长度至少为 strlen(s2) + strlen(s3) + 1,最后这个1就是结尾的'\0'。否则就会写越界。

2 回复 有任何疑惑可以回复我~
#1

花花丹

原来是酱紫,谢谢><
2015-03-30 回复 有任何疑惑可以回复我~

你好,这是因为字符数组s2的长度只能容纳"我爱,"这几个字符和'\0',无法z再把数组s3接上去

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥先strcat(s2,s3);再strcpy(s1,s2);会报错?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信