#include <iostream>
#include <cassert>
/*
*一句话中的单词倒置
*
*I am chinese
*倒置后:
*chinese am I
*/
void StringWorldReverse(char* str)
{
assert(str != nullptr);
int i = 0, j = strlen(str)-1;
//首先进行全盘翻转
while(i<j)
{
char temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
i = 0;
int begin = 0;
int end = 0;
int length = strlen(str) ;
for (int i = 0; i < length; i++)
{
if (str[i] == ' ')
{
end = i - 1;
//单词交换
while (begin < end)
{
char temp = str[begin];
str[begin] = str[end];
str[end] = temp;
begin++;
end--;
}
begin = i + 1;
}
}
}
int main()
{
char str[] = "I am chinese";
StringWorldReverse(str);
std::cout << str;
}