输入I love you 输出you love I
(A^T B^T)^T -> BA
所以先对单词翻转 I evol uoy, 再对整个字符串翻转you love I
void reverse_str(char* left, char* right)
{
while (left < right)
{
std::swap(*left, *right);
left++;
right--;
}
}
void reverse_word(char *str)
{
if (str == NULL) return;
char *cur = str;
char *wordBegin = cur;
bool findingBegin = true;
while (*cur)
{
if (findingBegin)
{
if (*cur != ' ')
{
wordBegin = cur;
findingBegin = false;
}
}
else
{
if (*cur == ' ')
{
reverse_str(wordBegin, cur - 1);
findingBegin = true;
}
if (*(cur+1) == 0 && !findingBegin)
reverse_str(wordBegin, cur);
}
++cur;
}
reverse_str(str, cur - 1);
}