C++ASCII码表和字符操作

news/2024/11/25 6:56:40/

目录

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;   // 小写字母比大写字母大32p++;}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;
}


http://www.ppmy.cn/news/1549753.html

相关文章

Android 实现双列图片瀑布流式布局

Android 实现双列图片瀑布流式布局 实现双列图片瀑布流布局&#xff0c;关键在于 RecyclerView 的 StaggeredGridLayoutManager 和图片的动态加载。以下是实现步骤&#xff1a; 1. 添加必要依赖 使用 Glide 加载图片。确保在 build.gradle 中添加依赖&#xff1a; implement…

【PHP】 基础语法,自学笔记(二)

文章目录 基本语法变量声明基础数字运算Get & Post 请求 数组语法代码基础数字GET & POST 请求 基本语法 输出 echo hello php<br>;注释&#xff1a;跟 Html 的写法一样&#xff0c; 有 // 单行注释有多行注释 /** Php 文件里也可以放 HTML 的东西 变量声明 基…

Linux 下进程基本概念与状态

文章目录 一、进程的定义二、 描述进程-PCBtask_ struct内容分类 三、 进程状态 一、进程的定义 狭义定义&#xff1a;进程是正在运行的程序的实例&#xff08;an instance of a computer program that is being executed&#xff09;。广义定义&#xff1a;进程是一个具有一定…

Mac设置java环境变量

Mac电脑中存在多个jdk版本,如何配置java环境变量为指定版本jdk? 一、查看所有已安装的 JDK 版本 /usr/libexec/java_home -V二、临时设置 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)三、永久设置 如果需要永久使用指定版

MT8768/MTK8768安卓核心板性能参数_联发科安卓智能模块开发方案

MT8768安卓核心板 是一款采用台积电12nm FinFET制程工艺的智能手机芯片。MT8768核心板不仅提供所有高级功能和出色体验&#xff0c;同时确保智能终端具备长电池寿命。该芯片提供了一个1600x720高清(20:9比例)分辨率显示屏&#xff0c;排除了清晰度和功耗之间的平衡问题。该芯片…

QT文件基本操作

QT文件基本操作 1.概述 这篇文章介绍一些QT操作文件的基础内容 2.创建项目 首先创建一个普通的widget类型项目&#xff0c;然后使用UI 布局页面&#xff0c;实现一个读取文件内容的功能。 2.1.UI布局 在UI界面添加一个QWideget容器&#xff0c;然后在容器中分别添加lineT…

AWS codebuild + jenkins + github 实践CI/CD

前文 本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流&#xff0c;用于自动化发布已经部署 lambda 函数。 在 AWS 海外区&#xff0c;CI/CD 工作流可以用 codepipeline 这项产品来方便的实现&#xff0c; CICD 基本概念 持续集成( Continuous…

CTF之密码学(键盘加密)

在CTF&#xff08;Capture The Flag&#xff0c;夺旗赛&#xff09;中&#xff0c;键盘加密是一种独特而有趣的加密方式&#xff0c;它巧妙地利用了键盘的布局和坐标进行信息的加密和解密。以下是关于CTF中键盘加密的详细解释&#xff1a; 一、键盘加密的定义 键盘加密是通过…