21xrx.com
2024-12-28 06:10:10 Saturday
登录
文章检索 我的文章 写文章
C++如何进行大小写转换
2023-07-01 12:54:35 深夜i     --     --
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++大小写转换。如果需要对整个字符串进行转换,使用方法一或方法二比较方便。如果只需要针对单个字符进行转换,方法三可能是最快的方法。无论使用哪种方法,都应在数据输入之前进行验证,以确保程序不会出错。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复