以下程序的输出结果为( )
main(){chars1[40]="country",s2[20]="side";inti=0,j=0;while(s1[i]!='\0')i++;while(s2[j...
main( )
{ char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!='\0') i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]=0;
printf("%s\n",s1);
}
A side B country C sidetry D countryside
请详细解释。不太明白s1[i]!='\0'这种语句是什么意思。调试的时候看到i=8就跳出第一个循环了。不太懂 展开
{ char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!='\0') i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]=0;
printf("%s\n",s1);
}
A side B country C sidetry D countryside
请详细解释。不太明白s1[i]!='\0'这种语句是什么意思。调试的时候看到i=8就跳出第一个循环了。不太懂 展开
1个回答
展开全部
\0是表示字符串结束的字符,否则你的si有40个字符空间,实际上只用到7个字符,如何知道这个字符只有7个字符,后面的都是无效的呢?因为第8个字符是\0,s2也是同理
第一个while是通过检查\0找到\0在s1中的位置。找到以后用第二个while把s2的每一个字符添加到s1后面,最后添上\0,来结束字符串。这样s1就包含了原来的s1和s2连接起来的字符,也就是countryside,并打印
第一个while是通过检查\0找到\0在s1中的位置。找到以后用第二个while把s2的每一个字符添加到s1后面,最后添上\0,来结束字符串。这样s1就包含了原来的s1和s2连接起来的字符,也就是countryside,并打印
追问
可能有一些明白了……不是特别清楚……
那 s1[i++]=s2[j++]是什么意思?还有后面那个s1[i]=0;是要干什么用的?
追答
s1[i++]=s2[j++] 就是逐个把s2的字符复制到s1的后面
s1[i]=0; 是因为字符串结尾需要结束符,也就是\0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询