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;
}
本文介绍了一个使用C++实现的程序,该程序通过读取标准输入的字符串并去除标点符号,然后将处理后的字符串插入到自定义的字符串集合中。最终,程序输出按字典序排列的所有唯一字符串。涉及的技术包括C++标准库函数如isalpha(), ispunct()等的使用,以及自定义比较器在set中的应用。
518

被折叠的 条评论
为什么被折叠?



