题目要求:用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;
}