请给这个程序加上详细注释 谢谢
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 程序如下: #include <stdio.h> void main() { char str[81]; int i,num=0,word=0; char c; gets(str); for(i=0;(c=str[i])!='\0';i++) if(c=='') word=0; else if(word==0) { word=1; num++; } printf("There are %d words in the line.\n",num); } 请给上面这个程序加上注释,特别是这一部分看不太懂 for(i=0;(c=str[i])!='\0';i++) if(c=='') word=0; else if(word==0) { word=1; num++; }
解题思路是这样的: 单词的数目可以由空格出现的次数决定(连续的若干个空格作为出现一次空格,一行开头的空格不统计在内)。如果测出某一个字符为非空格,而它前面的字符为空格,则表示又是一个单词,此时num累加1。如果当前字符为非空格而前面的字符也是非空格,则表示仍然是原来那个单词的继续,num不再累加1。
前面一个字符是否空格可以从word的值看出来,若word等于0,则表示前一个字符是空格;如果word等于1,表示前一个字符为非空格。 我来注释一下你说的这些代码。
for(i=0;(c=str[i])!='\0';i++) /* i从0开始,将字符数组的一个字符赋给字符变量c,直到遇见结束符号为止 */ if(c==' ') word=0; /*如果c为空格,把0赋值给word*/ else if(word==0) /*如果word的值为0 */ { word=1; /*前一字符为空格(word=0),新单词出现,使num加1,word=1 */ num++; }。
已?在附件裏注?了. ?看附件
答:////头文件//#include#include////使用命名空间std//usingnamespacestd;////定义类person//classpe...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>