【算法题】按单词逆序

来源:互联网 发布:ipad从哪里下载软件 编辑:程序博客网 时间:2024/05/18 02:36

将字符串单词顺序颠倒

先逐个翻转单词,然后整体翻转
注意可能连续出现空格如:” a bc de “

#include <iostream>using namespace std;void print(char * s){    while (*s!='\0')    {        cout << *s++;    }    cout << endl;}void ReverseWord(char* left, char* right){    while (left<right)    {        std::swap(*left, *right);        left++;        right--;    }}void Reverse(char * str){    if (str==NULL|| *str=='\0')//异常输入    {        return;    }    char *s = str;    while (*s==' ')//句首空格    {        s++;    }    char * left = s;    char * right = s;    while (*right!='\0')    {        if (*right==' ')        {            ReverseWord(left, right - 1);            while (*right==' ')//连续空格            {                right++;            }            left = right;        }        else        {            right++;        }    }    ReverseWord(left, right - 1);    ReverseWord(str, right - 1);}int main(){    char str[1024];    gets_s(str);    Reverse(str);    print(str);    return 0;}