天天看點

颠倒一個句子中的詞的順序,比如将“我叫克麗絲”轉換為“克麗絲叫我”,實作速度最快,移動最少

如“I am a student”--->"student a am I"

void swap(char* a,char* b)

{

*a =*a^*b;

*b =*a^*b;

*a =*a^*b;

}

void ReverseWord(char* input,int len)

{

int low = 0;

int high = 0;

while(high<len)

{

while(' '!=input[high]&&'\0'!=input[high])

++high;

for(int i=low;i<(high+low)/2;++i)

swap(input[i],input[high+low-i-1]);

low = high+1;

high = high+1;

}

for(int i=0;i<len/2;++i)

swap(input[i],input[len-i-1]);

}

int main()

{

char input[]="I am a student";

int len = strlen(input);

ReverseWord(input,len);

cout<<input<<endl;

}