- 题目描述
- 题目分析
- 代码实现
题目链接:倒置字符串
题目描述将一句话的单词进行倒置,标点不倒置。比如 I like beijing.
经过函数后变为:beijing. like I
输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
根据题目要求,这里对带空格和标点的字符串逆置,其中标点不逆置,因此可以分为如下几步:(这里的逆置可以使用reverse函数)
1、整体数据进行逆置
2、对每个单词进行逆置
#include#include #include using namespace std; int main() { string s; getline(cin, s);//获取字符串 reverse(s.begin(), s.end());//整体逆置字符串 auto start = s.begin(); while (start != s.end()) { auto end = start; while (end != s.end() && *end != ' ') { end++; } reverse(start, end); if (end != s.end()) { start = end + 1; } else { start = end; } } cout << s << endl; return 0; }



