问题描述:
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world
样例输出
olleh dlrow
代码如下:
#include <iostream>
#include<cstring>
#include<cstring>
using namespace std;
int pos;
void out(string s){//逆序输出
for(int i=s.size()-1;i>=0;i--)
cout<<s[i];
}
void print(string s){
pos=s.find(' ',0);
if(pos==string::npos){//找不到空格,相当于输入的是一个没有空格的字符串
out(s);
return;
}//if
else{//输入的字符串有空格
string t=s.substr(0,pos);
out(t);
s=s.substr(pos+1);
pos=s.find(' ',0);
while(pos!=string::npos){
t=s.substr(0,pos);
cout<<" ";
out(t);
s=s.substr(pos+1);
pos=s.find(' ',0);
}//while
cout<<" ";
out(s);
}
}
int main()
{
string s;
getline(cin,s);
print(s);
return 0;
}