1.eof()用ctrl + z手动输入
2.没有区分大小写
和标准代码比较
isalpha()
一种函数:判断字符ch是否为英文字母,若为小写字母,返回2,若为大写字母,返回1。若不是字母,返回0。
tolower()
#include <iostream>
#include <set>
#include <ctype.h>
#include <cstdio>
using namespace std;
struct compare
{
bool operator()(string s1, string s2)
{
return s1 < s2;
}
};
typedef set<string, compare>_SET;
string eraPunct(string str)
{
bool has_punct = false;
string result_str;
for(string:: size_type index = 0; index != str.size(); ++index)
{
char ch = str[index];
if(ispunct(ch))
{
has_punct = true;
}
else
{
result_str += ch;
}
}
if(has_punct)
{
str = result_str;
}
return str;
}
int main()
{
_SET s;
string str;
while(!cin.eof())
{
cin >> str;
s.insert(eraPunct(str));
}
set<string, compare>::iterator it = s.begin();
for(;it != s.end(); it++)
{
cout << *it << endl;
}
return 0;
}