第一个循环结构不是已经将s[i]都赋成'\0',那第二个循环不是根本就执行不了吗,怎么会有输出结果
注意结尾的分号,这个分号说明for循环的循环体是执行一个空操作,重点在于for循环括号里面的字符读取操作。
for(i=0;(s[i]=getchar())!='\n';i++);
这段代码依次是读取字符到数组s中,i是个变量,在不断增加
直到读取到换行符,字符读取停止,此时i指向了数组s中的下一个位置。
注意结尾的分号,这个分号说明for循环的循环体是执行一个空操作,重点在于for循环括号里面的字符读取操作。
for(i=0;(s[i]=getchar())!='\n';i++);
然后再这个新的位置,存入一个空字符,作为字符数组的结尾,然后可以用于下一个for循环的结尾判断。
s[i]='\0';
for(i=0;(s[i]=getchar())!='\n';i++);
这句的功能是:读入"I Love Computer Very Much!"字符串,按字符一个一个读入并保存在字符串数组s[]中。
s[i] = '\0', 将字符数组的最后一位加入'\0'字符串结束符。
for(i=0;s[i]!='\0';i++){
......
}
将字符串s中的字符,大写字母转小写字母,小写字母转大写字母,并输出。