[C++]ASCII字母大小写转换

完整源码

#include #include using namespace std; int main(){string a {"BaSiC"}; string b {"MinIX"}; for(int i=0; i<5; i++) { a[i] = a[i] & 0xDF; // to upper case b[i] = b[i] | 0x20; // to lower case }cout << a << "\n" << b; return 0; }

运行结果 [C++]ASCII字母大小写转换
文章图片
ASCII字符大小写互相转换.PNG 代码原理
84218421 and11011111 DF or00100000 20

  • C++/C 使用前缀 0x表示十六进制数
  • 0x 是数字零以及小写字母x
大小写转换的汇编知识参见
  • https://www.jianshu.com/p/7c55d6debcb0
  • https://www.jianshu.com/p/175f90648631
拓展阅读 【[C++]ASCII字母大小写转换】https://stackoverflow.com/questions/16405354/python-confused-by-if-statement-if-bits0x20-0x20?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

    推荐阅读