//这个程序首先是将整个字符串进行逆序,再根据空格进行分别逆序。
#include <stdio.h>
#include<string.h>
int main()
{
char str[100] = "i am from shanghai";
// 数组长度、字符串长度 是不一样的
// 求字符串长度
int len = 0;
// while(str[len])
// len++;
len = strlen(str);
// 将句子逆序
int left = 0;
int right = len-1;
while (left < right)
{
char temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
}
// 将每一个单词再逆序
left = 0;
int index = 0;
while (str[index] != '\0') // 遍历整个字符串
{
if (str[index] == ' ') // 找到了一个单词结束位置
{
right = index-1;
while (left < right) // 将单词逆序
{
char temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
}
left = index+1;
}
index++;
}
// 将最后一个单词进行交换
right = len-1;
while (left < right)
{
char temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
}
puts(str);
return 0;
}