剑指Offer——翻转英文句子中的单词顺序

来源:互联网 发布:震撼人心的照片知乎 编辑:程序博客网 时间:2024/05/16 08:55

主要思路:

先交换整个句子的顺序,再交换每个单词的顺序。


一下代码在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;}

0 0
原创粉丝点击