• 字符串或数字反转


    字符串反转

    有以下几种情形:

    第一种是将字符串按字符全部反转

    //输入
    I am a student
    //输出
    tneduts a ma I

    这种情形实现比较简单,只需要将输入的字符串按字符倒序输出即可。

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main(){
        
        string str;
        getline(cin, str);
        for(int i = str.size()-1; i>=0; i--){
            cout<<str[i];
        }
        cout<<endl;//最后再输出换行符
        return 0;
    }

    第二种是将字符串以单词为单位反转

    //输入
    I am a student
    //输出
    student a am I

    这种情形可以将字符串中的单词都装进string类型的vector中,然后倒序输出vector中的元素。

    #include<iostream>
    #include<vector>
    #include<string>
    using namespace std;
    
    int main(){
        vector<string> str;
        string s;
        while(cin>>s){
            str.push_back(s);
        }
        for(int i=str.size()-1; i>=0; i--){
            cout<<str[i]<<' ';
        }
        cout<<endl;
        return 0;
    }

    也可以采用reverse()方法将迭代器begin()和end()之间的元素反转,范围for循环输出。

    使用reverse()方法要包含algorithm头文件。

    #include<iostream>
    #include<vector>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    int main()
    {
        vector<string> str;
        string s;
        while(cin>>s){
            str.push_back(s);
        }
        reverse(str.begin(),str.end());//元素全部反转    
        for(auto v : str)//范围for循环
        {
            cout<<v<<' ';
        }
        
        return 0;
    }

     还有一种情形是需要考虑非英文字符,并将非英文字符转换为单词间隔

    如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符

    这个时候只要适当加上一些判断条件就可以了。

    数字颠倒

    输入一个int整数,将这个整数以字符串的形式逆序输出。不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001。

    这里用到了to_string()方法,要包含algorithm头文件。

    #include<iostream>
    #include<algorithm>
    #include<string>
    using namespace std;
    
    int main(){
        int n;//按照int型接收
        while(cin>>n){
            string str = to_string(n);//int转化为string
            reverse(str.begin(), str.end());//反转全部元素
            cout<<str<<endl;
        }
        return 0;
    }

     C++11

  • 相关阅读:
    NAIPC 2019-It’s a Mod, Mod, Mod, Mod World(类欧几里德模板)
    BAPC 2018 Preliminaries-Isomorphic Inversion(字符串哈希)
    Cubemx 生成工程代码失败的原因
    共生滤波器相关论文分析
    西瓜书6.2 matlab的libsvm使用
    西瓜书4.4 基于基尼指数选择划分的决策树 预剪枝与后剪枝
    西瓜书4.3 编写过程 决策树
    西瓜书 5.5 编写过程(标准BP与累计BP)
    西瓜书3.4 解题报告(python 多分类学习 十折交叉法)
    西瓜书3.3 尝试解题(python)对率回归 极大似然估计
  • 原文地址:https://www.cnblogs.com/chongjz/p/12552440.html
Copyright © 2020-2023  润新知