通过从in.txt从一个个把字符储存到由set<string>s;定义的s中
把所有字母串都为一个字符串储存 ,如遇到数字或其他符号,则变为' '.
涉及陌生地方:
1、tolower(),将其字母为小写,其他不变。
2、isalpha(),判断其是否为字母,是则返回1.
3、set<string>::interator *ip 定义以后迭代器
for(p=s.begin();i<p!=s.end(),i++) cout << *ip <<endl; 遍历二叉树
4、stringstream ss(str1); ****提供读写string的功能 头文件为<sstream>
while(ss >> str2) s.insert(str2); 通过stringstream定义一个ss 然后ss>>str2, 把ss的内容读入到str2
#include <string>
#include <iostream>
#include <set>
#include<sstream>
using namespace std;
int main(){
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
string str1,str2;
set<string>a;
while(cin >> str1){
for(int i=0;i<str1.length();i++){
if(isalpha(str1[i])){
str1[i]=tolower(str1[i]); //isalpha,用于判断是否为字母
}else{
str1[i]=' ';
}}
stringstream ss(str1);
while(ss >> str2) a.insert(str2);}
set<string>::iterator ip; //iterator 为定义一个迭代器
for(ip=a.begin();ip!=a.end();ip++){
cout << *ip << endl;}
return 0;
}