21xrx.com
2024-12-22 18:55:56 Sunday
登录
文章检索 我的文章 写文章
C++ 字符串字母大小写转换方法详解
2023-06-29 03:57:15 深夜i     --     --
C++ 字符串 大小写转换 字母 方法

在 C++ 编程中,我们经常需要对字符串或字母进行大小写转换,例如将大写字母转换为小写字母、小写字母转换为大写字母。那么,在 C++ 中,如何实现字符串字母大小写转换呢?本文将详细介绍两种常用的实现方法。

方法一:使用 C++ 自带的库函数

C++ 自带了两个库函数 `toupper` 和 `tolower`,可以将一个字符转换为大写或小写:


char toupper(char c); //将字符 c 转换为大写字母

char tolower(char c); //将字符 c 转换为小写字母

例如,将字符串中所有的小写字母转换为大写字母,可以使用如下代码:


#include <iostream>

#include <cstring>

#include <cctype>

using namespace std;

int main()

{

  char str[] = "Hello, World!";

  int len = strlen(str);

  for (int i = 0; i < len; ++i) {

    str[i] = toupper(str[i]);

  }

  cout << str << endl; //输出 HELLO, WORLD!

  return 0;

}

方法二:使用位运算符

在 ASCII 码表中,大写字母和小写字母相差一个数值,可以通过位运算符实现大小写字母的转换。具体方法如下:

1. 大写字母转换为小写字母:将该字符的二进制表示中第五位上的数值从 1 改为 0,即使用按位与运算符 `&`,将该字符的 ASCII 码的第五位清零即可。


char tolower(char c) //将大写字母转换为小写字母

{

  if (c >= 'A' && c <= 'Z') {

    return (c | 32); //大写字母的 ASCII 码与 32 按位或即可转换为小写字母的 ASCII 码

  }

  return c;

}

2. 小写字母转换为大写字母:将该字符的二进制表示中第五位上的数值从 0 改为 1,即使用按位或运算符 `|`,将该字符的 ASCII 码的第五位设置为 1 即可。


char toupper(char c) //将小写字母转换为大写字母

{

  if (c >= 'a' && c <= 'z') {

    return (c & ~32); //小写字母的 ASCII 码与 223(11100011B) 按位与即可转换为大写字母的 ASCII 码

  }

  return c;

}

综上所述,使用 C++ 自带的库函数或位运算符均可以实现字符串字母大小写的转换。需要根据具体的需求进行选择。

  
  

评论区

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