📅  最后修改于: 2023-12-03 15:39:14.305000             🧑  作者: Mango
在C++中,我们可以使用标准库中的算法和遍历来将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表达式来定义这个函数。
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中的所有字符串转换为了小写或大写。