在C++中,实现字符串大小写转换可以通过标准库中的函数来完成。以下是两种常见的方法:
使用标准库函数std::transform
std::transform
是一个泛型算法,可以用来对序列中的每个元素应用一个给定的函数,并把结果存储到另一个序列中。这里我们可以使用tolower
和toupper
函数来转换字符的大小写。
cpp
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
std::string toLowerCase(const std::string& str) {
std::string lowerCaseStr = str;
std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(),
[](unsigned char c){ return std::tolower(c); });
return lowerCaseStr;
}
std::string toUpperCase(const std::string& str) {
std::string upperCaseStr = str;
std::transform(upperCaseStr.begin(), upperCaseStr.end(), upperCaseStr.begin(),
[](unsigned char c){ return std::toupper(c); });
return upperCaseStr;
}
int main() {
std::string original = "Hello World!";
std::string lower = toLowerCase(original);
std::string upper = toUpperCase(original);
std::cout << "Original: " << original << std::endl;
std::cout << "Lower Case: " << lower << std::endl;
std::cout << "Upper Case: " << upper << std::endl;
return 0;
}
使用循环遍历字符串
如果你不想使用std::transform
,也可以通过遍历字符串中的每个字符,并使用tolower
和toupper
函数来转换。
cpp
#include <iostream>
#include <string>
#include <cctype>
std::string toLowerCase(const std::string& str) {
std::string lowerCaseStr;
for (char c : str) {
lowerCaseStr += std::tolower(c);
}
return lowerCaseStr;
}
std::string toUpperCase(const std::string& str) {
std::string upperCaseStr;
for (char c : str) {
upperCaseStr += std::toupper(c);
}
return upperCaseStr;
}
int main() {
std::string original = "Hello World!";
std::string lower = toLowerCase(original);
std::string upper = toUpperCase(original);
std::cout << "Original: " << original << std::endl;
std::cout << "Lower Case: " << lower << std::endl;
std::cout << "Upper Case: " << upper << std::endl;
return 0;
}
这两种方法都可以实现字符串的大小写转换。第一种方法使用了标准库的std::transform
函数,而第二种方法则是通过手动遍历字符串中的每个字符来实现。两种方法都是有效且常用的。