我有一个可能包含数字以及大小写字母的字符串。我需要将所有大写字母转换为小写,反之亦然。怎么办?
原文由 rectangletangle 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个可能包含数字以及大小写字母的字符串。我需要将所有大写字母转换为小写,反之亦然。怎么办?
原文由 rectangletangle 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一种无需提升的方法:
#include <string>
#include <algorithm>
#include <cctype>
#include <iostream>
char change_case (char c) {
if (std::isupper(c))
return std::tolower(c);
else
return std::toupper(c);
}
int main() {
std::string str;
str = "hEllo world";
std::transform(str.begin(), str.end(), str.begin(), change_case);
std::cout << str;
return 0;
}
原文由 David Titarenco 发布,翻译遵循 CC BY-SA 2.5 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.3k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
1 回答2.7k 阅读✓ 已解决
3 回答525 阅读✓ 已解决
迭代字符串并使用
isupper()
来确定每个字符是否为大写。如果是大写,请使用tolower()
将其转换为小写。如果不是大写,请使用toupper()
将其转换为大写。