统计一行字符中有多少个单词

思路:如果一个字符是字母,而它之前字符不是字母,则表示新单词开始,此时单词计数加1;如果一个字符是字母,并且它之前的字符也是字母,则表示还是原来单词,单词计数不变。 使用一个标签,表示当前字符是否处于一个单词中。

#include<stdio.h>
#include<iostream>
#include<string.h>
int wordcount(char data[], int size)
{
	if(size <= 1)
		return 0;
	int i = 0, word = 0, count = 0;
	while( i < size)
	{
		while( i < size && (data[i] < 'A' ||(data[i] > 'Z'&&data[i] < 'a')||data[i] > 'z'))
			i++;
		while( i < size && ((data[i] >= 'A'&&data[i]<= 'Z')||(data[i] >= 'a'&&data[i]<= 'z')))
		{
			i ++;
			if(word == 0)
			{
				word = 1;
				count ++;
			}
		}
		word = 0;
	}
	return count;
}
int main()
{
	char data[100];
	gets(data);
	std::cout<<wordcount(data, strlen(data))<<std::endl;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *