#include <stdio.h>
#include <string.h>
#include <assert.h>
void reverse(char* left,char* right)
{
assert(left && right);//在函数开始处检验传入参数的合法性
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[100] = { 0 };
//输入字符串
gets(arr);
int len = strlen(arr);
//完成整个逆序
//1.逆序整个字符串
reverse(arr, arr + len - 1);
//2.逆序每个单词
char* cur = arr;
while (*cur)
{
char* start = cur;
while (*cur != ' ' && *cur != '\0')
{
cur++;
}
reverse(start, cur - 1);//逆序每个单词
if (*cur != '\0')
{
cur++;
}
}
printf(" % s\n", arr);
return 0;
}