反转句子中的单词顺序

来源:互联网 发布:嵌入式和java哪个难学 编辑:程序博客网 时间:2024/05/01 10:09
// ReveseWord.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include<string.h>using namespace std;void Reverse(char *pBegin, char *pEnd){      if(pBegin == NULL || pEnd == NULL)            return;      while(pBegin < pEnd)      {            char temp = *pBegin;            *pBegin = *pEnd;            *pEnd = temp;            pBegin ++, pEnd --;      }}char* ReverseSentence(char *pData){      if(pData == NULL)            return NULL;      char *pBegin = pData;      char *pEnd = pData;      while(*pEnd != '\0')            pEnd ++;      pEnd--;      // Reverse the whole sentence      Reverse(pBegin, pEnd);      // Reverse every word in the sentence      pBegin = pEnd = pData;      while(*pBegin != '\0')      {            if(*pBegin == ' ')            {                  pBegin ++;                  pEnd ++;                  continue;            }            // A word is between with pBegin and pEnd, reverse it            else if(*pEnd == ' ' || *pEnd == '\0')            {                  Reverse(pBegin, --pEnd);                  pBegin = ++pEnd;            }            else            {                  pEnd ++;            }      }      return pData;}int main(){  char pData [100] ="I am a students."; ReverseSentence(pData); cout<<pData; return 0;}             

以上代码为使用别人的,可以使用,建议参考http://www.cnblogs.com/wdw828/archive/2012/02/04/2337865.html 写的不错
原创粉丝点击