zoukankan      html  css  js  c++  java
  • 字母符号计算一条英文句子中单词个数

    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;
    }

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

  • 相关阅读:
    Java中IO流的总结
    Java常用集合体系以及相互区别
    TreeMap集合特点、排序原理
    HashMap集合
    TreeSet集合
    redis 数据类型详解 以及 redis适用场景场合
    You need tcl 8.5 or newer in order to run the Redis test
    PHP 获取二维数组中某个key的集合
    Linux 定时任务
    phpmailer邮件类
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3069778.html
Copyright © 2011-2022 走看看