10815 Andy’s First Dictionary
題目原文
題目說明
輸入一段文章,輸出每一單字,並按字典序排列。
思路
一個單字一個單字去讀,若遇到像 andy's 這種詞,須將其切割為 andy 和 s 兩個單字,
讀完丟入 set (會自動依字典序排列),再利用迭代器輸出即可。
題目說明
輸入一段文章,輸出每一單字,並按字典序排列。
思路
一個單字一個單字去讀,若遇到像 andy's 這種詞,須將其切割為 andy 和 s 兩個單字,
讀完丟入 set (會自動依字典序排列),再利用迭代器輸出即可。
- #include<iostream>
- #include<cctype>
- #include<cstring>
- #include<sstream>
- #include<set>
- using namespace std;
- set<string> dict;
- int main()
- {
- string input;
- while(cin >> input)
- {
- for(int i = 0; i < input.length(); i++)
- {
- if(isalpha(input[i]))
- input[i] = tolower(input[i]);
- else
- input[i] = ' '; // 非字母轉成空白字元 (ex. andy's 變 andy s)
- }
- stringstream ss; // 拿來切割 (ex. andy s 變兩個字串)
- ss << input;
- string output;
- while(ss >> output)
- dict.insert(output); // 會自動由小到大排
- }
- set<string>::iterator it;
- for(it = dict.begin(); it != dict.end(); it++)
- cout << *it << endl;
- return 0;
- }
留言
張貼留言