一、算法思路:
二、代码实现:
#include <stdio.h>
#include <string.h>
#include <assert.h>
void reverse(char* left, char* right)//reverse是自定义的逆序字符串的函数
{
assert(left && right);
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[100] = { 0 };
//输入:
gets(arr);//(可能会用到空格,功能是把字符串放在指定的位置)
//这样就使输入的信息放到arr中了,有空格也会读取。
//逆置
int len = strlen(arr);
//逆置每个单词
char* start = arr;
char* end = start;
while (*end != '\0')
{
while (*end != ' ' && *end != '\0')
{
end++;
}
reverse(start, end - 1);
if (*end == '\0')
{
start = end;
}
else
{
start = end + 1;
}
end = start;
}
//2、整个字符串的逆序
reverse(arr, arr + len - 1);
//输出
printf("%s\n", arr);
return 0;
}
//I like Beijing.
//Beijing.like I