📌  相关文章
📜  将vector中的所有字符串转换为小写或大写c++(1)

📅  最后修改于: 2023-12-03 15:39:14.305000             🧑  作者: Mango

将vector中的所有字符串转换为小写或大写

在C++中,我们可以使用标准库中的算法和遍历来将vector中的所有字符串转换为小写或大写。下面给出具体实现。

将vector中的所有字符串转换为小写
#include <algorithm>
#include <cctype>
#include <string>
#include <vector>

void toLower(std::vector<std::string>& vec) {
    for (auto& str : vec) {
        std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c){ return std::tolower(c); });
    }
}

上述代码中,我们使用std::transform算法将每个字符串中的所有字符转换为小写。该算法接受三个参数:要转换的字符串的开始和结束迭代器,以及对每个字符进行转换的一个函数。我们使用lambda表达式来定义这个函数。

将vector中的所有字符串转换为大写
void toUpper(std::vector<std::string>& vec) {
    for (auto& str : vec) {
        std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c){ return std::toupper(c); });
    }
}

与将字符串转换为小写类似,我们只需要将lambda表达式中的std::tolower函数替换为std::toupper函数即可。

使用示例
#include <iostream>

int main() {
    std::vector<std::string> vec {"Hello", "World", "!"};
    toLower(vec);
    for (const auto& str : vec) {
        std::cout << str << " ";
    }
    std::cout << std::endl;
    
    toUpper(vec);
    for (const auto& str : vec) {
        std::cout << str << " ";
    }
    std::cout << std::endl;
    
    return 0;
}

上述代码中,我们定义了一个包含三个字符串的vector,并依次调用了toLower和toUpper函数。输出结果如下:

hello world !
HELLO WORLD !

至此,我们成功地将vector中的所有字符串转换为了小写或大写。