英文字母的大小写互换,将所有都变成小写,所有都变成大写 位运算实现
---------------------2021.3.14更新----------------------------------
为什么这么做可以的原理 大小写字母的ASCII码之间的规律,不用相差32来讲 , 今天复习汇编的时候看到的,还算比较巧妙,很强
---------------------2021.3.14更新----------------------------------
- 利⽤或操作 | 和空格将英⽂字符转换为⼩写
('a' | ' ') = 'a'
('A' | ' ') = 'a'
- 利⽤与操作 & 和下划线将英⽂字符转换为⼤写
('b' & '_') = 'B'
('B' & '_') = 'B'
- 利⽤异或操作 ^ 和空格进⾏英⽂字符⼤⼩写互换
('d' ^ ' ') = 'D'
('D' ^ ' ') = 'd'
示例
#include<iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string str;
cin >> str;
for (int i = 0; i < str.length(); i++){
str[i]=str[i]^' '; //大小写互换
// str[i]=str[i]|' '; //全小写
// str[i]=str[i]&'_'; //全大写
}
cout<<str<<endl;
return 0;
}
和普通方法相比 将一个只含有大小写字母的字符串大写变成小写,小写变成大写后输出。