题目大意:输入一些句子,将其中的单词存入字典,用EOF跳出循环,最后将所有单词按字典序输出。
解题思路:将单词分割开的不一定是空格,可能是其他非字母字符。输入一行,然后读单词存入set。最后用迭代器输出。
ac代码:
#include <iostream>
#include <set>
#include <cstring>
using namespace std;
set <string>se;
set <string>::iterator it;
int len;
char a[5005], b[5005];
int main()
{
while (scanf("%s", a)!=EOF){
len = strlen(a);
for (int i=0; i<len; i++){
memset(b, 0, sizeof(b));
for (int j=0; isalpha(a[i]) && i<len; j++,i++){
if (a[i] <= 'Z')
a[i] = a[i] - 'A' + 'a';
b[j] = a[i];
}
if (strlen(b))
se.insert(b);
}
}
for (it=se.begin(); it!=se.end(); it++)
cout << *it << endl;
se.clear();
return 0;
}