用到的几个小知识 :

1.字符串流是以空格作为一个字符串的结束标志,采用stringstream来提取单词。

2.为了消除重复单词,需要先将vector排序,使得重复的单词相邻出现,不先排序无法正确“删除”重复元素

3.使用unique STL算法来重排vector,使得不重复的元素出现在vector的开始部分。

代码如下:

#include "stdafx.h"
#include <string.h>
#include <algorithm>
#include <vector>
#include <deque>
#include <functional>
#include <iostream>
#include <list>
#include <sstream>
#include <iterator>
#include <functional>using namespace std;int _tmain(int argc, _TCHAR* argv[])
{stringstream ss;string str = "the quick red fox jumps over the slow red turtle";string strWord;vector<string> vecWords;ss.clear();ss.str(str);while (ss >> strWord){vecWords.push_back(strWord);strWord.clear();}cout << "sort before:" << endl;copy(vecWords.begin(), vecWords.end(), ostream_iterator<string>(cout, " "));cout << endl;cout << "sort after and unique before:" << endl;//从大到小排序//sort(vecWords.begin(), vecWords.end(),greater<string>());//默认是从小大的字典排序sort(vecWords.begin(), vecWords.end());copy(vecWords.begin(), vecWords.end(), ostream_iterator<string>(cout, " "));cout << endl;vector<string> vecWordsBackup(vecWords);cout << "sort and unique afer:" << endl;unique(vecWords.begin(),vecWords.end());copy(vecWords.begin(), vecWords.end(), ostream_iterator<string>(cout, " "));cout << endl;cout << "sort and unique and erase after:" << endl;vecWordsBackup.erase(unique(vecWordsBackup.begin(),vecWordsBackup.end()), vecWordsBackup.end());copy(vecWordsBackup.begin(), vecWordsBackup.end(), ostream_iterator<string>(cout, " "));cout << endl;cout << "total words:"<<vecWordsBackup.size() <<endl;return 0;
}

运行结果:

转载于:https://www.cnblogs.com/jinxiang1224/p/8468433.html

字符串中统计单词个数相关推荐

  1. 习题:统计字符串中的单词个数

    1 /*统计字符串中的单词个数*/ 2 #include<stdio.h> 3 int main(void) 4 { 5 char a[80]={""},c; 6 in ...

  2. C语言——从字符串中统计单词的频数

    C语言--从字符串中统计单词的频数 #include<stdio.h> #include<string.h> #include<malloc.h>typedef s ...

  3. 【codevs1040】【01NOIPTG】统计单词个数,字符串的划分DP

    1040 统计单词个数 2001年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给出一个长度不超过200的 ...

  4. c#统计字符串中数字字符的个数【C#】

    c#统计字符串中数字字符的个数 题目描述 假设有一个GetNumber方法(参数为字符串strSource),编写一个静态方法可以用来统计字符串strSource中数字字符的个数. 输入 输入一个字符 ...

  5. java识别汉字个数_统计字符串中汉字的个数

    字符串可以包括数字.字母.汉字或者其他字符.使用Charater类的isDigit()方法可以判断字符串中的某个字符是否为数字, 使用Character类的isLetter()方法可以判断字符串中的某 ...

  6. 汇编语言统计字符串中字符的个数

     因为作业里面有一个题,需要用汇编语言统计字符串中字符的个数,然而老师给的答案居然是错的.为什么呢,因为arm是字对齐的,答案居然每个字只比较一次就过去了,我去,每个字是有四个字节的,这能对吗,所以, ...

  7. 统计英文句子中的单词个数,并且输出每个单词

    package new_test; import java.util.Scanner; import java.util.StringTokenizer; //任务:统计英文句子中的单词个数,并且输出 ...

  8. 统计字符串中不同字符个数

    统计字符串中不同字符个数 如何统计字符串中不同字符个数呢,下面这段代码可以实现这个功能.(如有误,请见谅) #include<stdio.h> int main(void) {int i, ...

  9. C语言-输入一行英文字符串统计单词个数

    C语言-输入一行英文字符串统计单词个数,单词之间以空格隔开 判断是否为单词的依据,通过一个flag标识,flag为0表示字符为空格,接下来出现不是空格,会将flag置为1 只有当flag为1且当前字符 ...

最新文章

  1. hadoop 爬虫_hadoop学习笔记
  2. C++内存管理与内存泄漏及其检测
  3. Windows PE 第十三章 PE补丁技术
  4. 开源!2019CCF BDCI 乘用车销量预测 冠军方案
  5. 第六十节,文本元素标签
  6. CVE-2018-4407 苹果设备远程溢出漏洞
  7. 向量值函数在计算机工程与应用,拟Newton法在高阶矩阵中的应用-计算机工程与应用.PDF...
  8. osgi架构与linux_OSGi:进入微服务架构的门户
  9. text-overflow:ellipsis溢出显示省略号兼容所有浏览器的解决办法
  10. idea中npm安装总结与node-sass依赖安装等常见问题避坑总结
  11. 【干货】Python编程惯例
  12. [转]Fedora Core Linux 9 中安装VMware Tools-6.5.0
  13. svn linux clean up,SVN清理失败 (svn cleanup) 的解决方法
  14. Kali Linux中Unable to locate package错误的解决方法2-2
  15. hive hsq中的group by Distribute by partition by cluster by partitioned by clustered by
  16. HDOJ HDU 1129 Do the Untwist
  17. app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解
  18. 业务指标基础分析(excel)--python实现
  19. 无线接入控制服务器(ac),无线AP控制器是什么?无线AP与无线AC的区别
  20. 大蕉毕业三周年了,有话对你说 No.103

热门文章

  1. Struts2 为什么被淘汰?自己作死!
  2. 深入Lock锁底层原理实现,手写一个可重入锁
  3. 史上最易懂的 Kubernetes 儿童插图指南
  4. 谷歌和 Facebook 是如何给工程师定职级和薪水的?
  5. 数据库不推荐使用外键的9个理由!
  6. 双11/618,除了能拉升业绩外,还有什么好处?
  7. java.nio.Buffer flip()方法
  8. STL系列:map和unordered_map
  9. 【Scratch】青少年蓝桥杯_每日一题_4.13_猫捉老鼠
  10. the serveice mysql_解决重启MySQL数据库The server quit without updating PID file问题