给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (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; }
程序运行截图: