题目描写叙述:翻转句子中单词的顺序。但单词内字符的顺序不变。句子中单词以空格符隔开。
为简单起见,标点符号和普通字母一样处理。如:"I am a student."翻转成"student. a am I"。
#include#include #include using namespace std;void swap(char &a, char &b){ char tmp = b; b = a; a = tmp;}void swap_str(char* str, int start, int end){ assert(str!=NULL && start <= end); int low = start; int high = end; //整个句子按字符翻转 while (low < high) { swap(str[low], str[high]); low++; high--; }}void reverse_word(char str[]){ int len = strlen(str); //翻转整个句子 swap_str(str, 0, len-1); int s = 0; int e = 0; //翻转每一个单词 for (int i=0; i