输入i love you so much, 输出 much so you love i.
#include<iostream>
using namespace std;
void Reverse(char *begin, char *end)
{
if(begin == NULL || end == NULL)
return;
while(begin < end)
{
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
char* ReverseSentence(char *arr)
{
if(arr == NULL)
{
return NULL;
}
char *begin = arr;
char *end = arr;
while(*end != '\0')
{
end++;
}
--end;
Reverse(begin, end);
begin = end = arr;
while(*begin != '\0')
{
if(*begin == ' ')
{
begin++;
end++;
}
else if(*end == ' '|| *end == '\0')
{
Reverse(begin, --end);
begin = ++end;
}
else
{
end++;
}
}
return arr;
}
int main()
{
char arr[] = "i love you so much";
ReverseSentence(arr);
printf("%s\n", arr);
return 0;
}