题目:将一句话的单词进行倒置,标点不倒置。
举个例子: I like beijing. 经过函数后变为:beijing. like I
大致思路:先把字符串整体倒置,再把每个单词(标点符号也算在单词里)逆置。
具体代码实现如下:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string str;
int i=0;
int j = 0;
getline(cin,str);
reverse(str.begin(),str.end());//逆转整个字符串
while(i<str.size())
{
while(i<str.size()&&str[i]==' ')
{
++i;
j = i;
}
while (i < str.size() && str[i] != ' ')
{
++i;
}
reverse(str.begin()+j,str.begin()+i);//逆转每个单词
}
cout<<str<<endl;
return 0;
}