题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入"I am a student.",则输出"student. a am I"。

思路:若字符串中有n个空格符' ',则该字符串可被空格符分割成n+1部分,比如字符串"Good luck to you!"中有3个空格符,因此被分割成4部分:"Good"、"luck"、"to"、"you!"。分割出来的每一部分均进行翻转操作,有:"dooG"、"kcul"、"ot"、"!uoy",而空格符处不加改动,则原字符串变为"dooG kcul ot !uoy"。最后用字符串翻转函数strrev()对字符串"dooG kcul ot !uoy"进行翻转,得到的结果为:"you! to luck Good",即题目要求的结果。

编程的关键在于:如何翻转由空格符分割出来的子字符串。我们可用一个循环来探测输入字符串中的空格符,找到空格符后,将' '替换为'\0',则可使用strrev函数来翻转以新替换的'\0'为结尾的子字符串,翻转后再将'\0'换回' '。

代码如下,可以看到,该方法的代码量比网上的一些解法要小。

#include <iostream>
#include <string.h>
using namespace std;void reverse(char []);int main()
{char input[100];cin.getline(input,99);             <span style="white-space:pre">     </span>   //输入字符串reverse(input);                     //翻转字符串cout << input << endl;                         //输出字符串return 0;
}void reverse(char a[])
{char * temp = a;for (int i = 0; i < strlen(a); i++){if (a[i] == ' ')                           //查找空格符{a[i] = '\0';              <span style="white-space:pre">     </span>   //将空格符替换成'\0'strrev(temp);               <span style="white-space:pre">  </span>   //先翻转子字符串a[i] = ' ';temp = a + i + 1;}}strrev(temp);                       <span style="white-space:pre">    </span>   //最后一个空格符之后的子字符串不要忘了翻转strrev(a);                          <span style="white-space:pre">   </span>   //对经循环改动后的字符串统一进行翻转
}

经典面试题:翻转英文句子中单词的顺序相关推荐

  1. 翻转英文句子中单词的顺序

    利用字符串中的索引下标进行定位,先将整个英文句子翻转,而后将每个英文单词进行翻转 /* *程序说明:将一个英文句子翻转,单词中的字母顺序不变 *程序思路: 先将整个句子翻转,然后将各个单词中的字母顺序 ...

  2. 翻转英文语句中单词的顺序

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...

  3. 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a student.", ...

  4. 翻转句子中单词的顺序

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a student.", ...

  5. python输入一个英文句子、翻转句子中单词的顺序_H面试程序(4):翻转句子中单词的顺序 ....

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a student." ...

  6. python输入一个英文句子、翻转句子中单词的顺序_ODOA(1) 翻转句子中单词的顺序(C语言实现)...

    动动手才发现自己现在的在C/C++方向的几个问题: 对自己的入门语言C语言变得非常陌生 编程的思维固定在找既有的方法,主要原因是python写多了,基本上所有常见的问题,都有现成的方法,让自己变得懒惰 ...

  7. 输入一个英文句子,翻转句子中单词的顺序 例如输入“I am a student.”,则输出“student. a am I”。

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

  8. 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号。 例如输入“I am a student”,则通过控制台输出“student a

    输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号. 例如输入"I am a student",则通过控制台输出& ...

  9. 【经典算法】:翻转句子中单词的顺序

    题意 翻转句子中单词的顺序. 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a ...

最新文章

  1. 程序员们,今天就让她陪你们放松一下吧。她还有大宝剑哦。【原创】
  2. 为无LIB的DLL制作LIB函数符号输入库zz
  3. transpose公式_EXCEL转置你是用公式还是选择性粘贴?
  4. HTML与cgi post传递与接收,CGI实例--表单GET与POST示例
  5. java多线程基础概念
  6. php输出mysql查询结果_PHP简单获取数据库查询结果并返回JSON
  7. 获取程序进程并杀死该进程集
  8. Android应用程序插件化研究之DexClassLoader
  9. Linux系统磁盘阵列创建教程----------(better late than never. 只要开始,虽晚不迟。)...
  10. 程序员面试金典——18.12最大和子矩阵
  11. 【探索PowerShell 】【二】基本操作
  12. 实现收藏本站和设为首页功能
  13. 软文发布时标题怎么写,这几点值得注意!
  14. 共识算法 —— PoA
  15. 【电子学会】2021年06月图形化一级 -- 奔跑的马
  16. 数仓(四):数据建模:如何构建主题域/面向主题的建模
  17. 今晚“狼来了”|思一独角兽的狼人杀攻略
  18. python爬虫什么书好_python爬虫什么书
  19. Cppcheck--C/C++代码静态检测工具
  20. 机器人图形变变变_幼儿园大班数学《图形变变变》教案

热门文章

  1. 让Python带你看一场唯美的横飘雪!
  2. 黑客编程——制作AutoRun.inf免疫程序
  3. 假日阴谋论,黄金关键点
  4. 中本聪是个贪婪的矿工吗?
  5. mysql怎么样_mysql怎么样
  6. 武林外传 - 好久不见
  7. 回顾2019展望2020
  8. UVa 10557 - XYZZY
  9. 求学信计算机专业英语,A Letter of Application for Further Study(一封求学信)
  10. asp从服务器下载文件的几种方法