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