如何统计一行字符中有多少个单词
思路分析:单词的数目可以由空格出现的次数决定。连续的若干空格作为出现一次空格,一行开头的空格不统计在内。如果测出一个字符是非空格,而它前面的字符是空格,则表示新的单词开始了,此时将单词计数器累加1。如果当前字符是非空格而其前面的字符也是非空格,则意味着仍然是原来那个单词的继续,计数器不应再累加1。设置一个标识判断前面一个字符是否为空格,将其初始化为0,表示前一个字符是空格。若遇到非空格字符,则将该标识设为1,表示前一个字符是非空格。
代码如下:
#include "stdafx.h" #define BUFFERSIZE 1024 int main() { char string[BUFFERSIZE]; int i, count = 0, word = 0; char c; gets_s(string); for (int i = 0; (c = string[i]) != '\0'; i++) { if (c == ' ') word = 0; else if (word == 0) { word = 1; count++; } } printf("一共有%d个\n", count); getchar(); return 0; }
效果如图: