如何更改 C 中字符串的大小写?

新手上路,请多包涵

我有一个可能包含数字以及大小写字母的字符串。我需要将所有大写字母转换为小写,反之亦然。怎么办?

原文由 rectangletangle 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 449
2 个回答

迭代字符串并使用 isupper() 来确定每个字符是否为大写。如果是大写,请使用 tolower() 将其转换为小写。如果不是大写,请使用 toupper() 将其转换为大写。

原文由 Matthew Iselin 发布,翻译遵循 CC BY-SA 2.5 许可协议

这是一种无需提升的方法:

 #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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题