字符串向量中的元素小写

时间:2017-10-31 10:36:20

标签: c++ stdvector stdstring

我正在使用一个字符串向量,字符串不是小写字母。我希望他们转向小写。

为了将字符串转换为小写,我使用以下方法。

std::transform(strCmdLower.begin(), strCmdLower.end(), strCmdLower.begin(), ::tolower);

我可以迭代向量并转换每个字符串,但我想知道是否有任何库函数可用于此目的,如上所述。复制到新矢量也很好。

std::vector<std::string> v1;
v1.push_back("ABC");
v1.push_back("DCE");

std::vector<std::string> v2(v1.begin(), v1.end());

1 个答案:

答案 0 :(得分:1)

您仍然可以将std::transform与lambda一起使用,例如

std::vector<std::string> v1;
v1.push_back("ABC");
v1.push_back("DCE");

std::vector<std::string> v2;
v2.reserve(v1.size());

std::transform(
    v1.begin(), 
    v1.end(), 
    std::back_inserter(v2), 
    [](const std::string& in) {
        std::string out;
        out.reserve(in.size());
        std::transform(in.begin(), in.end(), std::back_inserter(out), ::tolower);
        return out;
    }
);

LIVE