字母符号计算一条英文句子中单词个数

PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

    给定一句英文,除了字母外之,还括包格空车回和水平制表符号('\t', '\n'), 根据这三个符号来算计一句英文中所含有单词的个数。

    下面给出的这个方法是我从一个外洋网站上看到的,思路清晰而且很有逻辑性,于是决议记录下来:

    设定两个志标: IN, OUT和一个变量state,当到遇字母的时候state值为IN, 当到遇下面说的那三个字符的时候state为OUT。你可以试测任何情况,括包两个单词旁边有多个格空的情况,下面给出代码:

    

    每日一道理
“上下五千年,龙的看火不灭;古有愚公志,而今从头越…… ”站在新世纪的门槛上,我们的追求就是让祖国灿烂的喜悦飞扬在美好的明天……
#include<iostream>
#include<string>
using namespace std;

unsigned int count_word(char *s) {
	const int OUT = 0;
    const int IN  = 1;
	int state = OUT;
	unsigned int count = 0;
	while (*s) {
		if (*s == ' ' || *s == '\t' || *s == '\n')
			state = OUT;
		else if (OUT == state) {
			state = IN;
			++count;
		}
		s++;
	}
	return count;
}

int main(int argc, char *argv[]) {
	char s[] = "this is a test\n this is    a  test";
	cout << count_word(s) << endl;
	cin.get();
	return 0;
}

文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!

posted @ 2013-05-09 20:07  坚固66  阅读(293)  评论(0编辑  收藏  举报