给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
输入描述:
输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
输出描述:
对于每个测试示例,要求输出句子中单词反转后形成的句子
示例1
输入
hello xiao mi
输出
mi xiao hello
下面请看程序:
#include<stdio.h>
#include<string.h>
int reverse(char *s, int start, int end)
{
char t;
while(end>start)
{
t=s[start];
s[start]=s[end];
s[end]=t;
start++;
end--;
}
}
int main()
{
int a=0;
int b=0;
int i=0;
char s[100];
gets(s);
reverse(s,0,strlen(s)-1); // 先全部翻转
while(i<strlen(s)) // 而后分个翻转
{
while(s[i]==' ' && i<strlen(s))
{
i++;
}
a=i;
while(s[i]!=' ' && i<strlen(s))
{
i++;
}
b=i-1;
reverse(s,a,b);
}
puts(s);
return 0;
}
程序运行截图: