题目描述
给定一堆用空格隔开的英文单词,将每个单词内部逆序后输出(单词顺序不变)。
输入描述
一堆英文单词,每个单词不超过10个字符,且仅由大小写字母组成;每两个单词之间用一个空格隔开,整个字符串的长度不超过1000。
输出描述
输出每个单词内部逆序后的结果,单词之间仍然是一个空格隔开,行末不允许有多余的空格。
样例1
输入
Hao Hao Xue Xi
输出
oaH oaH euX iX
代码:
#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int main(){
string str;
getline(cin,str);
str+=' ';
string s1="";
queue<string> qs; //使用队列来存储字符串
for(int i=0;i<str.size();i++){
if(str[i]!=' '){
s1+=str[i];
}else{ //遇到空格时
reverse(s1.begin(),s1.end());
qs.push(s1);
s1="";
}
}
while(!qs.empty()){ //输出队列
cout<<qs.front();
if(qs.size()==1) break;
else cout<<" ";
qs.pop();
}
}