if中的判断不满足会使if语句不执行,和for循环语句没有关系哦,for的判断条件是s[i]!='\0',也就是说只有当s[i]等于\0时for循环才终止,所以if不满足只是这一次循环中的if语句不执行哦,循环还会继续
i=3时,How do you do!这个句子中对应的是空格?,不是w?
因为你没看懂if是干什么用的
if里写的是s[j++]=s[i],只要不是空格就赋值,是空格就跳过不赋值
循环条件在for那一行,不是\0就一直循环
i 和 j 都是指向字符串 s 的两个游标,刚开始时 i = j = 0位,每遇到一个空格,i 仍然 +1往下一位,j 就暂停增加,直到不是空格时再+1,所以这段代码实现将字符串中的空格消除,合并成不包含空格的字符串。假如输入"How do you do!",具体的过程分析如下:
Input a string:How do you do!
s[i=0]=H, s[j=0]=H
s[i=1]=o, s[j=1]=o
s[i=2]=w, s[j=2]=w
s[i=3]= 空格位
s[i=4]=d, s[j=3]=d
s[i=5]=o, s[j=4]=o
s[i=6]= 空格位
s[i=7]=y, s[j=5]=y
s[i=8]=o, s[j=6]=o
s[i=9]=u, s[j=7]=u
s[i=10]= 空格位
s[i=11]=d, s[j=8]=d
s[i=12]=o, s[j=9]=o
s[i=13]=!, s[j=10]=!
** str: Howdoyoudo!