关于#c语言#的问题:接上去之后s2接上去之后s1[3]是 l 根本没变啊

img


为什么不选B啊,接上去之后s2接上去之后
s1[3]是 l 根本没变啊

应该选B啊。代码测试一下就知道了。s1中间有字符串结束符啊,s2会连接到这个换行符前面的

strcat接也是接到s1的后面,而s1[3]是第4个元素,还没到拼接的位置,因此还是l这个字符。

选择B,上机验证如下:

img


#include <stdio.h>
#include <string.h>
int main()
{
char s1[20]="he\0llo", s2[20]="abcdef";strcat(s1,s2+3);
printf("%c\n",s1[3]);
return 0;
}

strcat后,def从\0那里覆盖过去,l早没了