#include <iostream>
using namespace std;
#include <iomanip>
using std::setw;
void Reverse(char *,char *);//
void ReverseSentence(char *);
int main(int argc, const char * argv[]) {
char str[]="I am a students.";
cout<< setfill('*')<< setw(20) <<str<<endl;
ReverseSentence(str);
cout<<setfill('*')<<setw(20)<<str<<endl;
return 0;
}
void ReverseSentence(char *pData){
if(pData==nullptr){
return;
}
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++;
}
}
}
//反转句子或者一个单词
void Reverse(char *pBegin,char *pEnd){
if(pBegin==nullptr||pEnd==nullptr){
return;
}
while(pBegin<pEnd){
char temp=*pBegin;
*pBegin=*pEnd;
*pEnd=temp;
pBegin++;
pEnd--;
}
}
字符串:字符串的反转
最新推荐文章于 2024-08-05 20:49:33 发布