7-8 单词倒置 (15 分)
小明终于等来了好朋友的来信,但打开来信就傻眼了,居然看不懂,原来好朋友把信中的每个单词都翻转了顺序,例如“Happy”在朋友的信里变成了“yppaH”。请你编写程序帮助小明还原来信内容吧。
输入格式:
输入一个字符串,以回车结束。该字符串长度不超过100,包含多个单词,单词之间有一个或多个空格。
输出格式:
输出一行,即单词翻转后的字符串,注意每对单词之间的空格数量保持不变。
输入样例:
yppaH wen raey
输出样例:
在这里给出相应的输出。例如:
Happy new year
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
char s[105];
int a[505]={0};
int i=0,b=0,c=0,t=0;
gets(s);
while(s[i]!='\0')
{
if(s[i]==' '&&i==0)//单独计算开头为空格的情况
c=1;
if(s[i]!=' '&&c==0)
{
a[b++]=i;//储存每次变化时的位置
c=1;//做标记记录位置
}
if(s[i]==' '&&c==1)
{
a[b++]=i;
c=0;
}
i++;//逐个判断字符
}
a[b]=i;//算上结尾的字符,避免遗漏
while(s[a[t]]!='\0')//判断停止位置
{
for(i=a[t+1]-1;i>=a[t];i--)
{//将标记范围内的字符输出
putchar(s[i]);//输出此处的字符
}
t++;//数组记录下一个的位置
}
return 0;
}