给定一个字符串,按单词将该字符串逆序。

来源:互联网 发布:服务器端口什么意思 编辑:程序博客网 时间:2024/04/30 05:33
/*************************************************题目: 给定一个字符串,按单词将该字符串逆序。如输入"hello world",输出为"world hello"。*************************************************//*************************************************思路: 先按单词逆序,再对整个句子逆序。"hello world" ==> "olleh dlrow" ==> "world hello"*************************************************///测试程序#include <iostream>using namespace std;void reverseWord(char *start, char *end);//对start~end之间字符串进行逆序char *reverseSentence(char *s);//对整个字符串进行逆序int main(){char sentence[] = "Hello World";cout<<"逆序前: "<<sentence<<endl;cout<<"逆序后: "<<reverseSentence(sentence)<<endl;return 0;}void reverseWord(char *start, char *end){while(start < end){*start = *start ^ *end;*end = *start ^ *end;*start = *start++ ^ *end--;}}char *reverseSentence(char *s){char *p = s;      char *q = s;      while(*q != '\0') {          if(*q == ' '){            reverseWord(p,q-1);              q++; //q指向下一个单词的首字母              p = q;          }          else              q++;      }      reverseWord(p, q-1);//逆序最后一个单词    reverseWord(s, q-1);//逆序整个句子    return s;  }

0 0
原创粉丝点击