C++ASCII码表和字符操作

目录

1. 引言

2. ASCII码表

2.1 控制字符

2.2 可显示字符

3. 字符操作

3.1 记住几个字符规律

3.2 打印能够显示的ASCII码

3.3 字母大小写转换

3.4 数字转数字字符


1. 引言

        在电子计算机中,只能识别由 0 和 1 组成的一串串的二进制数字,为了将人类认识的文本字符和控制字符在计算机中存储,所以要对这些文本字符和控制字符进行编码存入计算机中,当需要将这些字符显示给我们人类看的时候,再对这些数字进行解码即可。

        ASCII (American Standard Code for Information Interchange),美国信息交换标准代码,就是一种字符编码,用于将文本字符和控制字符与数字进行映射。

2. ASCII码表

2.1 控制字符

        编码 [0, 31] 和 127 是控制字符,共 33 个字符是不可以打印的,其中编码 [0, 31] 这 32 个字符主要用于控制打印机等外围设备。

2.2 可显示字符

        编码 [32, 126] 是可显示字符,也就是可以打印在显示器屏幕上的字符。

3. 字符操作

3.1 记住几个字符规律

  • 大写字母 A ~ Z 的ASCII码 65 ~ 90
  • 小写字母 a ~ z 的ASCII码 97 ~ 122
  • 大写字母比小写字母的ASCII码小 32 (0b00100000,0x20) ,比如: char c = 'a',小写字母变大写字母,c = c - 32 得到,也可以做位与操作,c = c & 0b11011111 得到
  • 数字字符 0 ~ 9 的 ASCII码 48 ~ 57,所以一个数字要转换成数字字符,只要将数字 加上 48 (0x30) 即可
  • 字符串的终止符为 '\0',ASCII 码为 0
  • 换行符 '\n' 的 ASCII码为 10 (0x0A)

3.2 打印能够显示的ASCII码

#include <iostream>
using namespace std;

int main() {
    char tmp = '\0';
    for (int i = 32; i < 127; i++) {
        cout << (char)i;
        tmp = i % 15 == 0 ? '\n' : ' ';
            cout << tmp;
    }

    return 0;
}

3.3 字母大小写转换

#include <iostream>
using namespace std;

int main() {
    char str[] = "Hello";
    
    // 都转为小写字母
    char *p = str;
    while (*p != 0) {
        if (*p >= 'A' && *p <= 'Z')
            *p += 32;   // 小写字母比大写字母大32
        p++;
    }
    cout << str << endl;

    // 都转为大写字母
    p = str;
    while(*p != 0) {
        *p &= 0b11011111;
        p++;
    }
    cout << str << endl;

    return 0;
}

3.4 数字转数字字符

#include <iostream>
using namespace std;

int main() {
    int tmp = 0;
    for (int i = 0; i < 10; i++) {
        tmp = i + 48;
        cout << (char)tmp << " ";
    }
    cout << endl;

    for (int i = 0; i < 10; i++) {
        tmp = i | 0b00110000;
        cout << (char)tmp << " ";
    }
    cout << endl;

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值