问题描述:
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“Hello world!”,则输出“world! Hello”。
分析:
先翻转各个单词,然后整体翻转即可。
参考代码:
1 // 10.cc 2 #include <iostream> 3 #include <cstring> 4 #include <string> 5 using namespace std; 6 7 void reverse(char* p_start, char* p_end) { 8 char t; 9 while(p_start < p_end) { 10 t = *p_start; 11 *p_start = *p_end; 12 *p_end = t; 13 14 p_start++; 15 p_end--; 16 } 17 } 18 19 char* reverse_str(char* str) { 20 if (NULL == str) 21 return NULL; 22 23 char* p_start = str; 24 char* p_end = str; 25 26 // 翻转每个单词 27 while(*p_start != '