题目描述
输入单行英文句子,里面包含英文字母,空格以及,.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。
输入描述
输入字符串S,S的长度 1 ≤ N ≤ 100
输出描述
输出倒序后的字符串
备注
标点符号左右的空格 ≥ 0,单词间空格>0
用例
输入 | yM eman si boB. |
输出 | My name is Bob. |
说明 | 无 |
输入 | woh era uoy ? I ma enif. |
输出 | how are you ? I am fine. |
说明 | 无 |
题目解析
将字符串单词转为字符数组后进行reverse。但是单词中如果有标点符号的话,则标点符号的位置不能改变,比如enif. 倒序后为 fine. 其中 . 的位置在倒序前后是一样的。
从左到右遍历每一个字符,如果字符是 , . ? 或者空格,则看成一个分界符,将分界符之间的单词片段进行倒序。
C++
#include<iostream>
#include<vector>
#include<stdlib.h>
#include<algorithm>
#include<string.h>
using namespace std;
string reverse_string(string str){
// 反转字符串
string res = "";
for(int i = str.size()-1; i>=0; i--){
res += str[i];
}
return res;
}
int main()
{
// 输入处理
string input_str;
getli