输入一段英语文本,找出所有不同的单词,按字典序从小到大输出,单词不区分大小写。
【分析】
需要对输入进行预处理,因为包含标点符号等字符,需要将不是字母的字符变为空格,再将每个单词全部变为小写,用 set 统计即可
stringstream 参考链接:https://blog.csdn.net/u013186902/article/details/50853217
#include <iostream> #include <string> #include <set> #include <sstream> using namespace std; set<string> dict; int main() { string s, buf; while (cin >> s) { for (int i = 0; i < s.length(); i++) { if (isalpha(s[i])) { s[i] = tolower(s[i]); } else { s[i] = ' '; } } stringstream ss(s); while (ss >> buf) { dict.insert(buf); } } set<string> :: iterator i; for (i = dict.begin(); i != dict.end(); i++) { cout << *i << endl; } return 0; }