0
点赞
收藏
分享

微信扫一扫

C++ STL 倒序输出单词

潇湘落木life 2022-01-26 阅读 83

代码

#include "iostream"
#include "string"
#include <algorithm>
#include <vector>

using namespace std;
string check = " ";

vector<char> dueFun(vector<char> v)
{
    vector<char>::iterator it;

    it = find_end(v.begin(),v.end(),check.begin(),check.end());         //获取空格位置

    if(it != v.end())                                                   //find_end()失败指向 v.end()
    {
        vector<char> vecCopy(v.size());                                 //重新声明一个容器用于copy

        copy_n(v.begin(),it-v.begin(),vecCopy.begin());                 //copy空格之前的内容

        for(it;it<v.end();it++)                                         //输出空格之后的内容
        {
            cout<<*(it+1);
        }
        cout<<" ";

        dueFun(vecCopy);                            //递归
    }
    else
    {
        for(it = v.begin();it<v.end();it++)
        {
            cout<<*it;
        }
    }

}

int main()
{
    string input;

    cout<<"please input:"<<endl;
    getline(cin,input);                             //输入一行

    cout<<"reverse output:"<<endl;
    vector<char> vec(input.begin(),input.end());    //STL 声明与定义

    dueFun(vec); 
}

结果

在这里插入图片描述

举报

相关推荐

0 条评论