21xrx.com
2025-04-02 20:13:29 Wednesday
文章检索 我的文章 写文章
C++如何进行大小写转换
2023-07-01 12:54:35 深夜i     30     0
C++ 大小写转换 toupper tolower

C++是一种广泛使用的编程语言,其拥有许多强大的功能和工具,其中之一就是大小写转换。在某些情况下,需要将一段文本从大写转换为小写或从小写转换为大写。C++提供了多种方法来实现这一功能。本文将介绍一些常见的方法来实现C++大小写转换。

方法一:使用条件语句

这是一种简单但有效的方法,可以通过使用if-else语句分别将大写字母转换为小写,小写字母转换为大写。可以使用C++ string和char数组类型来实现此操作。

#include <iostream>
#include <string>
using namespace std;
string tolower(string s) {
 string result = "";
 for (int i = 0; i < s.length(); i++) {
  if (s[i] >= 'A' && s[i] <= 'Z') {
   result += s[i] + 32;
  } else {
   result += s[i];
  }
 }
 return result;
}
string toupper(string s) {
 string result = "";
 for (int i = 0; i < s.length(); i++) {
  if (s[i] >= 'a' && s[i] <= 'z') {
   result += s[i] - 32;
  } else {
   result += s[i];
  }
 }
 return result;
}
int main() {
 string s = "Hello World!";
 cout << tolower(s) << endl; // hello world!
 cout << toupper(s) << endl; // HELLO WORLD!
 
 return 0;
}

方法二:使用C++标准库函数

C++ 标准库提供了一些函数来实现字符串转换,它们是tolower()和toupper()。无需使用循环或条件语句的这些函数提供了更方便的解决方案。

#include <iostream>
#include <cctype>
using namespace std;
int main() {
 char c = 'A';
 cout << (char) tolower(c) << endl; // a
 cout << (char) toupper(c) << endl; // A
 
 return 0;
}

方法三:使用位运算符

在一个ASCII码字符中,将第5位(0010 0000)从1转换为0,就能将大写字母转换为小写字母。同样,将第5位从0转换为1,就能将小写字母转换为大写字母。这可以通过异或位运算符简单实现。

#include <iostream>
using namespace std;
int main() {
 char c = 'A';
 cout << ((char) (c ^ 32)) << endl; // a
 cout << ((char) (c ^ 32)) << endl; // A
 
 return 0;
}

总结

以上三种方法都可以实现C++大小写转换。如果需要对整个字符串进行转换,使用方法一或方法二比较方便。如果只需要针对单个字符进行转换,方法三可能是最快的方法。无论使用哪种方法,都应在数据输入之前进行验证,以确保程序不会出错。

  
  

评论区

请求出错了