21xrx.com
2024-12-22 22:43:13 Sunday
登录
文章检索 我的文章 写文章
C++中如何将小写字母转换为大写字母并保留其他字符?
2023-07-05 07:05:15 深夜i     --     --
C++ 大小写转换 字符串处理

在C++中,想要将小写字母转换为大写字母并保留其他字符,可以采用以下几种方法。

方法一:使用C++标准库的toupper()函数

头文件为 ,toupper()函数将小写字母转换为大写字母,不影响其他字符。以下是示例代码:


#include <iostream>

#include <cctype>

using namespace std;

int main() {

 char ch = 'a';

 cout << "Before: " << ch << endl;

 ch = toupper(ch);

 cout << "After: " << ch << endl;

 return 0;

}

方法二:使用ASCII码进行转换

小写字母的ASCII码范围为97到122,大写字母的ASCII码范围为65到90。因此,可以通过将小写字母的ASCII码减去32来得到大写字母的ASCII码,如下所示:


#include <iostream>

using namespace std;

int main() {

 char ch = 'a';

 cout << "Before: " << ch << endl;

 if (ch >= 'a' && ch <= 'z')

  ch -= 32;

 

 cout << "After: " << ch << endl;

 return 0;

}

方法三:使用位运算进行转换

由于大小写字母的ASCII码在二进制表示下的区别只有一个比特位(即第6位),因此可以通过将小写字母的第6位取反来得到大写字母的ASCII码,如下所示:


#include <iostream>

using namespace std;

int main() {

 char ch = 'a';

 cout << "Before: " << ch << endl;

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

  ch = ch & ~(1 << 5);

 }

 cout << "After: " << ch << endl;

 return 0;

}

以上三种方法均可以将小写字母转换为大写字母并保留其他字符。但需要注意,第二种和第三种方法只是一种赋值操作,不会改变原来的字符,需要将结果重新赋值给原来的字符变量。而第一种方法则直接将原来的字符变量进行了更改。

  
  

评论区

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