大写子串

时间:2016-03-03 02:57:24

标签: c++

ret += ": " + param.substr(tmp, rtmp);

我尝试并搜索了一些有用的东西来大写上面一行的第一个字母(substring),但没有成功。

std::string ret = "stackoverflow";

    if(param.length())
    {
        trimString(param);

        size_t tmp = 0, rtmp = param.length();
        if(param[0] == '"')
            tmp = 1;

        if(param[rtmp] == '"')
            rtmp -= 1;

        ret += ": " + param.substr(tmp, rtmp);
    }

它如何运作?

文本

stackoverflow "whatever

输出

stackoverflow: whatever

这就是我要找的东西

stackoverflow: Whatever

1 个答案:

答案 0 :(得分:0)

 ret += ": " + param.substr(tmp, rtmp);

首先,将子字符串提取为临时变量,然后将第一个字母大写:

 std::string s=param.substr(tmp, rtmp);

 s[0]=toupper(s[0]);

 ret += ": " + s;