英文字母的大小写互换,将所有都变成小写,所有都变成大写 位运算实现

---------------------2021.3.14更新----------------------------------

          为什么这么做可以的原理 大小写字母的ASCII码之间的规律,不用相差32来讲 , 今天复习汇编的时候看到的,还算比较巧妙,很强

---------------------2021.3.14更新----------------------------------

  1. 利⽤或操作 | 和空格将英⽂字符转换为⼩写
('a' | ' ') = 'a'
('A' | ' ') = 'a'
  1. 利⽤与操作 & 和下划线将英⽂字符转换为⼤写
('b' & '_') = 'B'
('B' & '_') = 'B'
  1. 利⽤异或操作 ^ 和空格进⾏英⽂字符⼤⼩写互换
('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;
}

          和普通方法相比 将一个只含有大小写字母的字符串大写变成小写,小写变成大写后输出。

posted on 2021-06-12 09:44  雾恋过往  阅读(606)  评论(0编辑  收藏  举报

Live2D