
c语言 这个程序里这句while(b[i]!='\0') i++;换成while(b[i++]!='\0') ;可以吗
#include<stdio.h>main(){chara[100]="fewfwefa",b[100]="wfwqfwqf",c[]="efwfwef";inti=0,...
#include<stdio.h>
main()
{
char a[100]="fewfwefa",b[100]="wfwqfwqf",c[]="efwfwef";int i=0,j=0,k=0,n=0;
while(b[i]!='\0')
i++;
while((b[i++]=c[j++])!='\0')
;
while(a[k]!='\0')
k++;
while((b[n])!='\0')
{a[k]=b[n];k++;n++;
}
a[k]='\0';
printf("%s",a);
} 展开
main()
{
char a[100]="fewfwefa",b[100]="wfwqfwqf",c[]="efwfwef";int i=0,j=0,k=0,n=0;
while(b[i]!='\0')
i++;
while((b[i++]=c[j++])!='\0')
;
while(a[k]!='\0')
k++;
while((b[n])!='\0')
{a[k]=b[n];k++;n++;
}
a[k]='\0';
printf("%s",a);
} 展开
4个回答
展开全部
这个程序中没有问题,因为循环之后没有使用i的值,如果循环结束后需要用i的值,这两者就不能相互取代了,因为:
while(b[i]!='\0') i++; ——循环结束后i为字符串长度
while(b[i++]!='\0') ; ——循环结束后i为字符串长度+1
while(b[i]!='\0') i++; ——循环结束后i为字符串长度
while(b[i++]!='\0') ; ——循环结束后i为字符串长度+1
更多追问追答
追问
如果 b[i++]!='\0' i还要 ++吗?
追答
对,只要作b[i++]!='\0' 这个判断,就要执行i++。
展开全部
while((b[i++]!='\0');
i--;
底下再加一句i--就完全一样了。
i--;
底下再加一句i--就完全一样了。
追问
while((b[i++]!='\0'); 这句i 执行到了'\0'的后一个 所以要-1?
追答
执行到'\0'后,while会跳出去,但是i还会加1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i++; 等同于
i = i +1;
而且是语句之后才为赋值。
所以,逻辑上完全没问题。
不过一般不建议哈,代码是写给人的。
首先要很容易看懂,容易修改,维护。
i = i +1;
而且是语句之后才为赋值。
所以,逻辑上完全没问题。
不过一般不建议哈,代码是写给人的。
首先要很容易看懂,容易修改,维护。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-08-04
展开全部
这个可以,如果是指针的话就不可以这样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询