博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻转句子中单词的顺序
阅读量:6957 次
发布时间:2019-06-27

本文共 891 字,大约阅读时间需要 2 分钟。

题目:

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

例如输入“I am a student.”,则输出“student. a am I”。

 

思路:

翻转“I am a student.”中所有字符得到“.tneduts a ma I”,再翻转每个单词中字符的顺序得到“students. a am I”,正是符合要求的输出。

1 void Function( char * str ) 2 { 3   int len = strlen( str ); 4   Reverse( str, str+len-1 ); 5  6   char * left , *right, *p; 7   p= str; 8  9   while ( *p != '\0' )10   {11     while ( *p ==' ' && *p!= '\0' )  //过滤掉单词前边的空格,确定单词起始位置,while结束时p指向字母,12       p++;13     left = p;  // left为单词的起始位置。14     while ( *p !=' ' && *p != '\0' )    //确定单词结束位置,结束时p指向空格,15        p++;16     right = p-1;17     Reverse( left, right );  18   }19 }20 void Reverse( char *left, char *right )21 {22   while ( left < right )23   {24     tem = *left;25     *left = *right;26     *right = tem;27     left++;28     right--;29   }30 }

转载于:https://www.cnblogs.com/kevinGaoblog/archive/2012/04/06/2434905.html

你可能感兴趣的文章
TodoKit 2 测试版来了
查看>>
【286天】跃迁之路——程序员高效学习方法论探索系列(实验阶段44-2017.11.18)...
查看>>
Ubuntu下使用U盘安装Ubuntu
查看>>
graphql-java使用手册:part4 订阅(Subscriptions)
查看>>
通过 Event Correlation 减少 Zabbix 告警数量
查看>>
理解js对象
查看>>
2017-10-07 前端日报
查看>>
降低服务器的swap容量操作过程
查看>>
阿里校招前端面经
查看>>
手机网站问题以及meta使用
查看>>
屏幕录制软件ALLCapture常见问题合集(上)
查看>>
npm入手笔记0x005-v2和v3包依赖管理的不同
查看>>
C++实践:STL容器reserve
查看>>
写Laravel测试代码(四)
查看>>
《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
查看>>
【全栈React】第28天: 部署
查看>>
苹果手机浏览器video点击无效的问题
查看>>
反射(Reflection)
查看>>
【胡言乱语】开发工程师如何在互联网公司的业务流水线上打造核心竞争力?...
查看>>
关于js中类型转换的问题
查看>>