• c++ string 大小写转换,split隔断指定字符


    //问题来源为ACM,将一串字符串缩写变大写,简称。
    //
    这两段代码共用到的头文件 #include<iostream> #include<cstring> #include<cstdio> #include<iostream> #include<iomanip> #include <vector> #include <string> #include <algorithm> using namespace std; //string小写转大写 void toUpper(string &str) { int length = 0; length = str.length(); for(int i=0; i<length; i++) { if(str[i]<='z' && str[i]>='a') str[i] = str[i]-32; } }
    //隔断指定字符
    vector<string> split(string str,string pattern)
    {
        int pos;//std::string::size_type
        vector<string> result;
        str+=pattern;//扩展字符串以方便操作
        int size=str.size();
    
        for(int i=0; i<size; i++)
        {
            pos=str.find(pattern,i);
            if(pos<size)
            {
                string s=str.substr(i,pos-i);
                result.push_back(s);
                i=pos+pattern.size()-1;
            }
        }
        return result;
    }
    
    
    int main()
    {
        string str;
        cin.ignore(1,'
    ');//解决第一次输入多一个回车问题(原因是第一次的回车仍然在输入流中)
        getline(cin,str);
        vector<string> result=split(str," ");//空格分隔单词
        string::size_type i;//因为result.size类型的问题,这里定义i
        for(i=0; i<result.size(); i++)
        {
            result[i]=result[i].substr(0,1);//获得隔断后的首字符
            //transform(result[i].begin(), result[i].end(), result[i].begin(), toupper); //大小写转换,在g++编译器中报错
            toUpper(result[i]);//大小写转换
            cout<<result[i];
        }
        return 0;
    }

    输入:

    most valuable player

    输出:

    MVP

  • 相关阅读:
    Android碰到的怪问题
    Linux转换文件格式
    Android 打包签名 从生成keystore到完成签名
    重写SimpleCursorAdapter
    sqlite的数据导入 导出
    日语单词检索WebService 账户API和示例更新
    日语单词检索 WebService 试运行 和简单说明
    使用扩展方法,让菜单也可以Clone
    接口里面的静态方法痒啊
    创业难,守业更难
  • 原文地址:https://www.cnblogs.com/bkycjj/p/3556267.html
Copyright © 2020-2023  润新知