逆置字符串
问题描述:将字符串中的元素按单词逆序,标点符号除外。
解决方法:首先将整个字符串逆序,使用reverse,然后将每个单词进行reverse,就得到想要的结果了。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1;
getline(cin, str1);
reverse(str1.begin(), str1.end());
auto start = str1.begin();
while (start != str1.end())
{
auto end = start;
while (end != str1.end() && *end != ' ')
++end;
reverse(start, end);
if (end == str1.end())
start = end;
else
start = end + 1;
}
cout << str1 << endl;
return 0;
}