首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

提问!该怎么解决

2013-12-02 
提问!#includestdio.hvoid main(){int i0,j0char s1[80],s2[40]printf(string1:)gets(s1)printf

提问!
#include<stdio.h>
void main()
{
int i=0,j=0;
char s1[80],s2[40];
printf("string1:");
gets(s1);
printf("\nstring2:");
gets(s2);
while(s1[i]!='\0')
i++;
while(s2[j]!='\0')
s1[i++]=s2[j++];
s1[i]='\0';
printf("The new string:%s\\n",s1);
}


意思是把两字符串连接起来,在i++之后,i应该等于'\0'了吧,然后怎么是把j++放入i++呢,不是替换'\0'后面一个字符了吗,而不是替换'\0',请帮帮忙,很不理解
[解决办法]

引用:
你们的意思是s1[i++]=s2[j++];是先将j放入i,然后再将j++放入i++,是吗,感觉看起来很不习惯啊

警告:一句话内最好不要出现两个以上++,禁止是同名的变量++出现2次以上。不然都是未定义行为,以上的解释都会产生问题。仅当当前情况下,上面的情况是正确的。
建议:分开写,s1[i]=s2[j];i++;j++;
关于未定义行为,看置顶贴:http://bbs.csdn.net/topics/370153775

热点排行