题目要求:用C/C++来实现字符串的反转。比如:字符串”I am student.”反转之后变成了”student. am I”。(只有单词反转,单词里的字母不反转)
思路:
通过两步来实现:
1.将句子中的每个单词翻转。
2.将整个句子翻转
画图来分析:
//这段代码实现翻转
void rotate_sentence(char* s,int bigen,int end) { while (bigen < end) { char temp = s[bigen]; s[bigen] = s[end]; s[end] = temp; end--; bigen++; } }
//测试翻转
void test_rotate_word_by_number() { char s[] = "i am student."; char* temp = s; int i = 0; int j = i; for (i = 0; i <= strlen(s); i++) { if (s[i] == ' ' || s[i] == '\0') { rotate_sentence(s, j, i - 1);//对单个单词进行翻转 j = i + 1; } } rotate_sentence(s, 0, strlen(s) - 1);//对整个句子进行翻转 cout << s; }