您的位置:首页 > 其它

10.翻转句子中单词的顺序。

2012-12-12 19:58 211 查看
问题:

翻转句子中单词的顺序。
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。

答案:

//20121212
#include <iostream>
#include <string>
#include <stack>
using namespace std;

void allReverse(string &s);
void wordReverse(string &s);
int main()
{
string s;
getline(cin,s);
allReverse(s);
wordReverse(s);
cout<<s<<endl;
return 0;
}
void allReverse(string &s)
{
int z=s.size();
char c;
for (int i=0,j=z-1;i<z/2;i++,j--)
{
c=s[i];
s[i]=s[j];
s[j]=c;
}
}
void wordReverse(string &s)
{
int z=s.size();
stack<char> sc;
for (int i=0;i<z;i++)
{
int j;
for (j=i;j<z;j++)
{
if (s[j]==char(' '))
{
break;
}
else
{
sc.push(s[j]);
}
}
while(sc.size()!=0)
{
s[i++]=sc.top();

sc.pop();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  翻转