/*======================================================================
1205 单词翻转
题目描述 Description
给出一个英语句子,希望你把句子里的单词顺序都翻转过来
输入描述 Input Description
输入包括一个英语句子。
输出描述 Output Description
按单词的顺序把单词倒序输出
样例输入 Sample Input
I love you
样例输出 Sample Output
you love I
数据范围及提示 Data Size & Hint
简单的字符串操作 解析:
注意:输入的字符串含空格,要用gets函数输入。
这个题目可以先把整个字符串读入,然后对整个字符串进行翻转,然后再以空格为
分隔符将每一个单词再次翻转就OK了。(也可以不对单词进行翻转,把他们存到数组b再逆序输出即可。) 还可以输入字符串,然后从后面往前面搜索,以空格为分隔符把每一个单词输出
(这个是取巧,不是真正地完成工作,但比赛时只是检测输出结果,可以考虑使用。)
========================================================================*/
#include<stdio.h>
#include<string.h>
int main()
{
char a[],temp,b[];//a数组存贮整个句子,b存储某一个单词
int i,len,j,k;
freopen("9.in","r",stdin);
gets(a);
len=strlen(a);
for(i=;i<len/;i++)//对整个字符串进行翻转
{
temp=a[i];
a[i]=a[len--i];
a[len--i]=temp;
}
//printf("\n%s\n",a);
i=;
j=;
while(a[i]!='\0')
{
if(a[i]!=' ')
{//扫描句子,遇到非空格字符则存到b数组
b[j]=a[i];
j++;
}
else
{//扫描句子时遇到空格,逆向输出b数组存贮的那个被逆序的单词
for(k=j-;k>=;k--)
{
printf("%c",b[k]);
}
printf(" ");
j=;
}
i++;
}/**/
for(k=j-;k>=;k--)//最后一个单词需要单独处理
{
printf("%c",b[k]);
}
printf("\n");
return ;
}

最新文章

  1. csharp:ASP.NET SignalR
  2. javascript中的prototype(原型)认识
  3. Java8简明教程(转载)
  4. win8 报file://CBD 0xc0000034 蓝屏
  5. 【转】Mac不能复制拷贝写入文件到移动硬盘,U盘怎么办 |
  6. js 操作剪切板
  7. 如何修改Struts2 FiledError样式
  8. OMR数据查询
  9. C语言对函数操作的结果声明
  10. 和spring cloud/boot 学习如何管理自己的组件
  11. Django开发环境静态文件访问配置
  12. Hadoop集群故障诊断
  13. document.getElementById 和 document.getElementsByClassName获取DOM元素的区别
  14. 在谷歌安装扩展程序Axure RP Extension for Chrome后,经常无故损坏,无法使用
  15. HDU 2112 HDU Today(最短路径+map)
  16. 集合框架-Set集合
  17. [C++ Primer] : 第11章: 关联容器
  18. 20155222 2016-2017-2 《Java程序设计》实验二
  19. Spring Data Jpa使用@Query注解实现模糊查询(LIKE关键字)
  20. Future Research Directions in Social Recommendation

热门文章

  1. 评价软件_搜狗输入法(pc端)
  2. iOS 从相机或相册获取图片并裁剪
  3. ACE - Ubuntu下环境搭建
  4. Nodejs创建https服务器(Windows 7)
  5. spring 常见错误
  6. window8快捷键
  7. mySQL CRUD操作(数据库的增删改查)
  8. Qt之动画框架
  9. centos 用户组
  10. csu 1604 SunnyPig (bfs)