[C/C++] 算法提高 不同单词个数统计
来源:互联网 发布:js触发事件 编辑:程序博客网 时间:2024/06/06 02:25
问题描述 编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。 说明: (1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子; (2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开; (3)不用考虑单词的大小写,假设输入的都是小写字符; (4)句子长度不超过100个字符。 输入格式:输入只有一行,即一个英文句子。 输出格式:输出只有一行,是一个整数,表示句子中不同单词的个数。输入输出样例样例输入one little two little three little boys样例输出5
思路:
1. 定义一个字符数组char sen[100]
,用gets
输入句子;
2. 对这个句子按照空格
或\0
标志,分解出每个单词;
3. 每次得到一个单词,放到一个变量temp
,用temp
都去word
数组找:如果word
数组里面没有这个单词,就把单词放进去,同时有个记录单词个数的变量nword
;如果word
数组有这个单词,就什么都不用做,继续获取下一个单词;
4. 最后就能输出单词个数nword
。
技巧:
用C++的String变量会方便很多,比如比较字符串,可以直接用==
运算符判断,可以用=
号直接对字符串赋值。
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int main (){ char sen[100]; gets(sen); // 输入的句子 string word[100]; // 存放单词的数组,每个单词都不重复 string temp; // 用来存放分解出来的单词 int nword = 0; // 记录单词个数 int len = strlen(sen); // 句子总长度 for (int i = 0; i <= len; ++i) { if (sen[i] == ' ' || sen[i] == '\0') { int j; for (j = 0; j < nword; ++j) if (word[j] == temp) break; // 不在word数组里面,就把词加入数组里,然后单词的个数nword+1 if (j == nword) word[nword++] = temp; temp.clear(); // 清除temp的字符,准备存放下一个单词。 } else temp += sen[i]; } cout << nword << endl; return 0;}
阅读全文
1 0
- [C/C++] 算法提高 不同单词个数统计
- 算法提高 不同单词个数统计
- 算法提高 不同单词个数统计
- 算法提高 不同单词个数统计
- 算法提高 最长单词&&单词个数统计&&不同单词个数统计
- 蓝桥杯 ADV-105 算法提高 不同单词个数统计
- 算法提高 ADV-105 不同单词个数统计
- C统计单词个数
- C算法-统计不同字符个数
- C语言 统计单词个数
- C语言统计单词个数
- ADV-102 算法提高 单词个数统计
- 算法提高 ADV-102 单词个数统计
- C 单词首字母大写&统计单词个数
- C语言算法--统计字符串中单词的个数
- [C] 统计字符个数 单词个数 行数
- 统计不同单词个数
- 不同单词个数统计
- 11月19日训练笔记
- C语言学习历程(四)三种循环语句编写斐波那契数列
- Apowersoft Phone Manager Pro(手机管理大师)官方中文破解版V2.8.9下载 | Apowersoft手机管理大师
- 逻辑运算符
- 版本管理工具 svn
- [C/C++] 算法提高 不同单词个数统计
- libevent之事件的创立
- 原码反码补码例子
- bresenham算法
- 微信分享之SPA的坑
- jsp访问本地的图片-tomcat虚拟路径
- spring 自定义注解
- python小练习(一)
- JSTL