翻转单词顺序,但单词中字母顺序保持不变。
void reverseword(char* begin, char* end) { if (begin != NULL && end != NULL) { while (begin < end) { char temp = *begin; *begin = *end; *end = temp; begin++; end--; } } else return ; } char* reversesentence(char* begin) { if (begin == NULL) return NULL; char* end = begin; while (*end != '\0') end++; end--; reverseword(begin, end); end = begin; char* result = begin; while (*begin != '\0') { if (*end == '\0' || *end == ' ') { reverseword(begin, end - 1); begin = end; end++; } else if (*begin == ' ') { begin++; end++; } else { end++; } } return result; } void test1() { char sentence[] = "hello world"; cout << reversesentence(sentence) << endl; } void test2() { char sentence[] = "world"; cout << reversesentence(sentence) << endl; } void test3() { char sentence[] = " "; cout << reversesentence(sentence) << endl; }