64,646
社区成员
发帖
与我相关
我的任务
分享
//编写一个程序对以空白符(包括回车换行符)为间隔的单词序列输入流进行转换输出,输出的格式是:
//先输出全部的小写单词,然后输出首字母大写的单词,最后输出大写单词(假设只有这三种形式的单词);
//且同一类的单词以与出现的顺序相反的顺序输出,也就是后出现的先输出。
#include <iostream>
#include <string>
#include <deque>
#include <iterator>
using namespace std;
void deque_printer(deque<string>& data){
deque<string>::iterator iter;
for(iter = data.begin(); iter != data.end(); ++iter){
cout << *iter << " " << ends;
}
}
int main()
{
string temp_string;
string::iterator str_iter;
deque<string> lower, mixed, upper;
typename deque<string>::iterator iter;
while(cin >> temp_string){
for(str_iter = temp_string.begin(); str_iter != temp_string.end(); ++str_iter){
if(islower(*str_iter)){
lower.push_front(temp_string);
break;
}
else{
++str_iter;
if(str_iter == temp_string.end()){
upper.push_front(temp_string);
break;
}
else{
if(islower(*str_iter)){
mixed.push_front(temp_string);
break;
}
else{
upper.push_front(temp_string);
break;
}
}
}
}
}
deque_printer(lower);
cout << endl;
deque_printer(mixed);
cout << endl;
deque_printer(upper);
cout << endl;
}