博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将一个句子中的单词逆转问题
阅读量:6271 次
发布时间:2019-06-22

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

问题描述:

  将一个句子中的单词逆转问题,例如:“I am Chinese!” 逆转后为:“Chinese! am I”

解决方法一:

  先将整个句子逆转,然后逆转以单词为一个单位,一次逆转每一个单词。

1 /* 2 逆转单个单词 3 参数1为要逆转的单词,参数2为逆转的起始位置,参数3为逆转的结束位置 4 如abcdefg,起始位置为1,结束位置为4,那么逆转后的结果为aedcbfg 5 */ 6 void ReverseWord(char *word, int starti, int endi) 7 { 8     if (NULL == word) 9         return;10     char *begin, *end;11     begin = word + starti;12     end = word + endi;13     char *tmp = new char();14     while (begin <  end && *begin != '\0')15     {16         *tmp = *begin;17         *begin = *end;18         *end = *tmp;19         begin++;20         end--;21     }22 }23 /*24     逆转一个句子25 */26 void ReverseWords(char *sentence)27 {28     if (NULL == sentence)29         return;30     char *begin = sentence, *end = sentence;31     while (*end != '\0')32         end++;33     end--;//最后一个字符是'\0'34     ReverseWord(sentence, 0, end - begin);//先将句子逆转一遍35     //接下来逆转每一个单词36     char *starti = begin;37     char *endi = begin;38 39     while (starti <= end && *starti != '\0')40     {41         while (*endi != ' ' && *endi != '\0')42             endi++;43         endi--;44         ReverseWord(sentence, starti - begin, endi - begin);45         endi += 2;46         starti = endi;47     }48 }

 

转载于:https://www.cnblogs.com/happyxixi/p/5354429.html

你可能感兴趣的文章
技术博客网址收藏
查看>>
python 金融分析学习
查看>>
授人以渔不如授人以鱼
查看>>
matlab练习程序(图像Haar小波变换)
查看>>
【Java】从域名得到ip
查看>>
Mysql索引会失效的几种情况分析
查看>>
LVM逻辑卷
查看>>
zoj3591 Nim(Nim博弈)
查看>>
canvas绘图
查看>>
poj - 3039 Margaritas on the River Walk
查看>>
bootstrap(5)关于导航
查看>>
Aptana插件在eclipse中安装
查看>>
jQuery-数据管理-删除事件
查看>>
下载器简单实例
查看>>
java实现分页工具类(JDBC)
查看>>
欧几里德算法与扩展欧几里德算法
查看>>
Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2)
查看>>
通过kafka提供的命令来查看offset消费情况
查看>>
oracle数据库从入门到精通之四
查看>>
自定义圆形图片控件
查看>>