题解 | #单词倒排#
单词倒排
https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836
#include <stdio.h>
#include<string.h>
int main()
{
char str[10001];
gets(str);
int end = strlen(str) - 1;
int bigen = end;
//把所有不是字符的转换为空格
for (int j = 0;j < end;j++)
{
if (str[j] >= 'a' && str[j] <= 'z' || str[j] >= 'A' && str[j] <= 'Z')
{
}
else
{
str[j] = ' ';
}
}
//开始遍历打印
for (int i = bigen;i >= 0;i--)//i=/0下一个位置 开始进行遍历寻找
{
if (str[i] == ' ') //当str【i】 == 空格时 开始打印
{
for (int j = i + 1;j <= end;j++) //从空格打印到end 结尾
{
printf("%c", str[j]);
}
printf(" "); //打印完毕后 打印空格
end = i - 1; //更改 末尾位置
}
if (i == 0) //最后一个单词 从头开始往后寻找空格打印
{
int z = 0;
while (end >= 0)
{
printf("%c", str[z]);
z++;
end--;
}
}
}
return 0;
}