题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。

句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

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

#include

#include

//45min

void swap(char *a, char *b)

{

assert(a);

assert(b);

char temp;

temp = *a;

*a = *b;

*b = temp;

}

void reverse(char * str,int start,int end)

{

assert(str);

int j = (end-start)/2;

for(int i =0; i<=j; i++)

swap(&(str[start++]), &(str[end--]));

}

void ReverceSentence(char * Str)

{

assert(Str);

int i = 0;

while(Str[i] !='\0')

{

i++;

}

int strlen = i; //得到字符串的长度

//整个字符串进行翻转

reverse(Str,0,strlen-1);

//每个单词进行翻转

int j ;

for(j = 0; j < strlen-1; j++) //最后一个那个'\0'不用管它

{

int start = j;//每个单词的起始位置

int end = j; //每个单词介绍的位置,初始化为j(新单词起始的位置)

while(Str[j] != ' '&&Str[j] != '\0' ) //遇到空格或结束符的时候退出,否则继续判断

{

end++;

j++;

}

reverse(Str,start, end-1); //对单个字符进行翻转

}

}

int main()

{

char sentence[]="I am a student!";

ReverceSentence(sentence);

printf("%s",sentence);

printf("\n");

return 0;

}

网上参考答案

#include

using namespace std;

void Reverse(char *start,char *end) //翻转字符串

{

if(start==NULL||end==NULL)

return;

char temp;

while(start

{

temp=*start;

*start=*end;

*end=temp;

start++;

end--;

}

}

char *ReverceSentence(char *pstr)

{

if(pstr==NULL)

return NULL;

//先将整个句子翻转

char *start=pstr;

char *end=pstr+strlen(pstr)-1;

Reverse(start,end);

start=pstr;

end=pstr;

//取出一个个单词,翻转之

while(*start!='\0')

{

if(*start==' ') //单词起始至非空格字符

{

start++;

end++;

continue;

}

else if(*end==' '||*end=='\0') //结束至空格或结束符前一个字符

{

Reverse(start,--end);

start=++end;

}

else

end++;

}

return pstr;

}

int main()

{

char sentence[]="I am a student!";

char *reverced=ReverceSentence(sentence);

cout<

system("pause");

return 0;

}

/*把给定的字符串的begin到end之间的部分翻转*/

void _reverse(char *str, int begin, int end)

{

int i = 0;

while(i <= (end - begin) / 2)

{

swap(str[begin + i], str[end - i]);

++i;

}

}

翻转句子中单词的顺序 C语言

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

7&period;翻转句子中单词的顺序&lbrack;ReverseWordOrderInSentence&rsqb;

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

IT公司100题-10-翻转句子中单词的顺序

问题描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“Hello world!”,则输出“world ...

【c&plus;&plus;】计算句子中单词的平均长度

Description 编程输入一行文本,计算这行文本的单词平均长度.假设每个单词用至少一个空格或者标点(英文逗号.句号)隔开.使用C++ string类型. Input 输入一行文本,不包含数字 O ...

OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】

/*================================================== 单词倒排 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一段英文 ...

H面试程序(12): 输出字符串中第一个只出现一次的字母

题目描述: 若字符串str为'' sbdddsbfc'',则输出 f; 若字符串str为''aabbccdd'',则输出:字符串str中的字符都出现两次以上 #include

557&period; Reverse Words in a String III 翻转句子中的每一个单词

[抄题]: Given a string, you need to reverse the order of characters in each word within a sentence whi ...

H面试程序(28):字符串处理转换

//2 字符串处理转换 //问题描述: //在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成, //其他非字母字符视为单词的间隔,如空格.问号.数字等等:另外单个字母不算单词): //找 ...

&lpar;C&num;&rpar; 反转字符串,反转一个句子中单词。

这个是非常基本的一道面试题,但是要考虑周全. 首先反转一个字符串: 基本思路是变成Char数组,然后调用C#里面的方法,或者设定两个index,从头,尾向中间遍历,并交换. 方法一: Array.Re ...

随机推荐

CSS立体标签实现

Markdown资源 markd

markdown是将某些格式的文本,翻译成HTML的一个库,非常精妙! https://www.npmjs.com/package/markedhttps://github.com/adam-p/ma ...

网站HTTP请求过程解析

网站性能优化中首要的一条就是要减少HTTP请求,那么为要减少HTTP请求呢?其实有些HTTP分析工具可以帮我们了解当浏览器请求一个资源时大致需要经历的哪些过程: 1 域名解析(DNS Lookup): ...

&lbrack;NYOJ 37&rsqb; 回文字符串

回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当 ...

python 数据类型之数float

1.float 对象有一个重要的方法is_intger.如果这个float对应在转化为int时不会有精度的丢失就返回True,不然就返回False #!/usr/bin/python #!coding ...

ubuntu 14&period;04 hadoop eclipse 0配置基本环境

动人的hadoop第二天.构造hadoop该环境还花了两天时间,在这里写自己配置的过程,我希望能帮助! 我将文中用到的全部资源都分享到了  这里,点开就能下载,不须要一个个的找啦! 当中有

移动端rem使用

let $html=document.documentElement,windowW = window.innerWidth,ratio = windowW / 750if (windowW > ...

Python撸支付宝红包教程,行走在灰色产业边缘的程序员!

2018年刚到就作死撸羊毛(支付宝).2017年用分享给支付宝好友链接的官方通道"撸"了400大洋. 如许天天早上7:30便起床开愉快心的分享红包链接.200多个老友分享完一次 ...

三种方法实现Hadoop&lpar;MapReduce&rpar;全局排序&lpar;1&rpar;

我们可能会有些需求要求MapReduce的输出全局有序,这里说的有序是指Key全局有序.但是我们知道,MapReduce默认只是保证同一个分区内的Key是有序的,但是不保证全局有序.基于此,本文提供三 ...

Python 零基础 快速入门 趣味教程 &lpar;咪博士 海龟绘图 turtle&rpar; 7&period; 条件循环

条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...

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

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

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

  2. python输入一个英文句子、翻转句子中单词的顺序_Python反转句子中单词的顺序

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

  3. python输入一个英文句子、统计单词个数_C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。c++编程 从键盘输入一个英文...

    C语言编程求一个英文句子中的单词数和最长单词的位置.长度及输出这个单词. c++编程 从键盘输入一个英文 www.zhiqu.org     时间: 2020-11-23 我刚做了一关于英文句子里面每 ...

  4. python输入一个英文句子_Python给定一个句子倒序输出单词以及字母的方法

    python输入一个正整数(位数不限),将其倒序输出def inversenum(num) numlist=liststr(nun) while numlist[-1]='0': numlist. p ...

  5. Python输入一个字符串,输出其中每个字符的出现次数。要求使用标准库collotections中的Counter类...

    一.题目: 1.输入一个字符串,输出其中每个字符的出现次数.要求使用标准库collotections中的Counter类. 2.输入一个字符串,输出其中只出现了一次的字符及其下标. 3.输入一个字符串 ...

  6. python输入一个英文句子 输出单词个数_编写程序,给出一个英文句子,统计单词个数。_学小易找答案...

    [简答题]叙述pass语句的作用. [简答题]吹风机不工作,可以用万用表检测吗?在网上搜索关键词,吹风机不工作怎么办? [单选题]以下代码运行结果正确的是哪一项?() x=2 if x:print(T ...

  7. python输入一个英文句子、求其中最长的单词的changd_数组练习

    (1)3有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; p ...

  8. python输入一个字符串、计算其中小写字符的个数_编写程序,输入一个字符串,统计其中大小写字母数字和其他符号的个数并输出,要求统计过程在函数COUNT中进行...

    答:对比ASCII码,在程序中小写字母96 答:a = "aAsmr3idd4bgs7Dlsf9eAF" 请将a字符串的数字取出,并输出成一个新的字符串. 请统计a字符串出现的每个 ...

  9. python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...

    导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...

最新文章

  1. 标准差、方差、协方差的简单说明
  2. 华为硬件笔试 通用器件知识2_华为硬件笔试题(最新版)
  3. python免费课程讲解-Python零基础免费入门课程
  4. 在iOS中求数组元素中最大数与最小数
  5. RHEL4-VNC服务配置
  6. 图文讲解5G调制,特别通俗易懂!
  7. 经典面试题(19):以下代码将输出的结果是什么?
  8. 打家劫舍(Leetcode)动态规划c语言
  9. Android日志系统Logcat源代码简要分析
  10. AtCoder Grand Contest 018 A
  11. 脚本都不写,不能算正式测试
  12. lseek()函数详解
  13. 预充电电路工作原理_电动汽车电控系统预充电原理
  14. C语言链表创建的电子通讯录V1.0
  15. Gamecenter 测试失败的解决方案
  16. 轻快的java_轻快的Java
  17. Vue2组件间通信——父传子值props
  18. 【Echarts】- 制作饼图
  19. python存数据库c读数据库喷码加工_python图片文字识别
  20. 内忧外患中,黄章的梦想机难救魅族一世

热门文章

  1. 陈丹琦带着清华特奖学弟发布新成果:打破谷歌BERT提出的训练规律这个庆祝方式太学神了吧
  2. 获取代理服务器ip列表的方法
  3. Unity 关于艺术字用法实现
  4. 基于STM32HAL库使用ADC采样方式,检测电压值与自带芯片温度值
  5. 【C++】vector数组排序
  6. 【Hexo博客】将静态博客部署到服务器
  7. java删除Linux目录下的文件夹
  8. 推荐一款能支持国密SM2的浏览器——密信浏览器
  9. c语言如何初始化程序,c语言二维数组如何初始化为0 - 全文
  10. HTML期末大作业课程设计动漫主题html5网页~奇恩动漫首页html模板(HTML+CSS)~个人设计web前端大作业