题目:输入一个英文句子,反转句子中单词的顺序,但单词内字符的顺序不变。
#include "iostream"
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(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;
}
void main()
{
char array[]={"I am a student!"};
ReverseSentence(array);
cout<<array<<endl;
}