#include <iostream>
bool isValid = true;
void swap(char* a, char* b)
{
if (*a != *b)
{
*a = *a ^ *b;
*b = *a ^ *b;
*a = *a ^ *b;
}
}
void reverseWord(char* s, int begin, int end)
{
while (begin < end)
{
swap(&s[begin++], &s[end--]);
}
}
void reverseSentence(char* s)
{
if (s == NULL || strlen(s) == 0)
{
isValid = false;
return;
}
reverseWord(s, 0, strlen(s) - 1);
int begin = 0;
int end = 0;
while (s[begin] != 0)
{
end = begin;
while (!(s[end] == ' ' || s[end] == 0))
++end;
reverseWord(s, begin, end - 1);
if (s[end] == 0) break;
begin = end + 1;
}
}
int main()
{
char s[] = "I love you very much";
reverseSentence(s);
return 0;
}