句子逆序

来源:互联网 发布:java超级玛丽源代码 编辑:程序博客网 时间:2024/04/28 20:34

将一个英文语句以单词为单位逆序排放。例如“I   am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。

思路:

先将字符串逆序,然后从左至右扫描,遇到空格,再逆序前面的字符串,直到字符串尾部.

有更简单思路的,欢迎留言讨论.

代码如下:

#include <iostream>#include <cstring>using namespace std;void RS(char *bp, char *ep){while(bp<ep){char tmp=*bp;*bp=*ep;*ep=tmp;bp++;ep--;}}char * Reverse(char *s){int len=strlen(s);char *es=s+len-1;RS(s,es);char *bp=s;char *ep=s;while(*ep!='\0'){while(*ep!='\0'&& *ep!=' ')ep++;RS(bp,ep-1);if(*ep==' '){ep++;    bp=ep;}}return s;}int main(){char str[500];gets(str);cout<<Reverse(str);}




0 0
原创粉丝点击