输入一行字符,统计其中有多少单词(单词间以空格分隔,连续出现的空格记为出现一次:一行开头的空格不算)。例如输入:“I love you”,共3个单词
解析: (1)单词的数目由空格出现的次数决定 (2)逐个检测每个字符是否为空格 (3)假设用number表示单词数(初值为0)。word=0表示前一字符为空格,word=1表示前一字符不是空格,word初值为0; (4)如果当前字符是空格,说明未出现新单词,此时word=0,number不变;如果当前字符不是空格,而前一个字符是空格,说明出现新单词,此时使word=1,number加1;如果当前字符不是空格,前一个字符也不是空格,说明未出现新单词,此时使word=1,number不变。
程序如下: #include<stdio.h> void main(){ char array[50]; int i,word=0,number=0; gets(array); for(i=0 ; array[i] != '\0' ; i++){ if(array[i] == ' ') word=0; else if( word == 0){ word=1; number++; } } printf("There are %d words.\n" , number); }
键盘输入: I love you<回车> There are 3 words.