如"i am a student" 倒置为 "student a am i"
思路:
1)倒置整个字符串
2)倒置每个单词
#include <iostream> #include <string.h> using namespace std; void Reverse_word(char *p,char *q){ if (p==q) { return; } while (p<q) { char tmp=*p; *p=*q; *q=tmp; q--; p++; } } void Reverse_sentance(char pSentance[]){ if (pSentance==NULL) { return; } Reverse_word(pSentance,pSentance+strlen(pSentance)-1); char *pBegin=pSentance; char *pEnd=pSentance; while (*pEnd!='\0') { if (*pEnd!=' ') { pEnd++; }else{ Reverse_word(pBegin,pEnd-1); pBegin=++pEnd; } } Reverse_word(pBegin,pEnd-1);//逆转最后一个词 } int main(){ char p[]="i am a student"; printf("%s\n",p); Reverse_sentance(p); printf("%s\n",p); return 0; }