剑指Offer——翻转英文句子中的单词顺序
2016-04-07 15:20
375 查看
主要思路:
先交换整个句子的顺序,再交换每个单词的顺序。
一下代码在VS2015中调试无误
先交换整个句子的顺序,再交换每个单词的顺序。
一下代码在VS2015中调试无误
#include "stdafx.h" #include<iostream> using namespace std; void Reverse(char *pBegin, char *pEnd) { if (NULL == pBegin || NULL == pEnd) return; while (pBegin < pEnd) { char temp = *pBegin; *pBegin = *pEnd; *pEnd = temp; pBegin++, pEnd--; } } char* ReverSentence(char *pData) { if (NULL == pData) return NULL; char *pBegin = pData; char *pEnd = pData; while (*pEnd != '\0') pEnd++; pEnd--; //反转整个句子 Reverse(pBegin, pEnd); //反转每个单词 pBegin = pEnd = pData; while (*pBegin != '\0') { if (*pBegin == ' ') { pBegin++; pEnd++; } else if (*pEnd == ' ' || *pEnd == '\0') { Reverse(pBegin, --pEnd); pBegin = ++pEnd; } else { pEnd++; } } return pData; } int main() { char input[]="i am a student."; printf("input is : \n %s \n", input); if (NULL != ReverSentence(input)) printf("after reverse is:\n %s \n",input); while (1); return 0; }
相关文章推荐
- javascript 之闭包详解
- react-native-闪屏页
- 剑指offer:二叉树的下一个结点
- 理解 Javascript 的闭包
- 样式设置
- 【剑指offer系列】 打印1到最大的n位数___12
- javascript闭包详解
- php的date对象与javascript的Date对象区别
- 通过原生js添加div和css
- AngularJs 过滤器
- 制作单页的动画插件
- ReactNative学习十三-Props和State
- js正则验证之不能使用相同字符
- Sass编译Css
- JQuery筛选器全系列介绍
- 去掉<textarea>中的html标签
- Gson使用总结
- jquery Ajax提交表单(使用jquery Ajax上传附件)
- 原生js 学习之array 数组
- node.js第一步