C 语言入门总结(二):字符、ASCII 码与字符串的 “底层逻辑”
上一篇咱们搭好了 C 语言的 “骨架”今天这篇咱们来给它注入 “灵魂”—— 搞懂字符、字符串和那些奇奇怪怪的转义字符一、字符与 ASCII 码计算机的 “文字密码本”我们在代码里敲的 A、b、 这些符号在 C 语言里都叫字符必须用单引号 包起来比如 A、。1. 为什么需要 ASCII 码计算机只认二进制 0 和 1没法直接存 “字符”于是人们给每个字符分配了一个专属数字 —— 这个过程就是编码而最通用的编码规则就是ASCII 码。 想查完整 ASCII 码表可以戳https://zh.cppreference.com/w/cpp/language/ascii2. 新手必记的常用 ASCII 码值不用死记硬背记住这些高频的就够了大写字母 A~Z65~90比如 A65Z90小写字母 a~z97~122比如 a97z122大小写字母差值32比如 a-A32小写比大写大 32数字字符 0~948~57重点是字符 0不是数字 0换行符 \n100~31 的 ASCII 码都是不可打印字符比如回车、退格屏幕上看不到3. 用 ASCII 码打印字符字符和它的 ASCII 码值是 “一一对应” 的打印时两种方式都能用#include stdio.h int main() { // 直接打印字符Q printf(%c\n, Q); // 用ASCII码值81打印Q效果完全一样 printf(%c\n, 81); return 0; }也可以打印全部字符#include stdio.h int main() { int i 0; // 遍历32~127可打印字符范围 for (i 32; i 127; i) { printf(%c , i); // 每16个字符换一行排版更整齐 if (i % 16 15) printf(\n); } return 0; }二、字符串字符的 “组队模式”单个字符是 “单打独斗”字符串就是 “团伙作案”——C 语言里用双引号 包起来的就是字符串比如 abcd、Hello world!。1. 打印字符串的两种方式上一篇我们用 printf(Hello world!) 直接打印这里补充更通用的写法后续高频使用#includestdio.h int main(){ // 方式1直接打印 printf(Hello world!\n); // 方式2用%s占位符推荐适合变量场景 printf(%s\n,Hello world!); return 0; }温馨提示C 语言里占位符是 “专属座位”%s → 字符串%d → 整数%f → 浮点数%c → 单个字符2. 字符串的 “隐藏结尾符”\0你以为字符串 abc 只有 3 个字符错编译器会偷偷在末尾加 \0ASCII 码值 0它是字符串的 “终止信号”——printf、strlen 这些函数读到 \0 就会停止。若是不相信此处也验证 \0 的作用#includestdio.h int main(){ // 数组1只存a、b、c没有\0 char arr1[]{a,b,c}; // 数组2用定义自动加\0 char arr2[]{abc}; printf(arr1%s\n, arr1); // 打印乱码找不到结束符 printf(arr2%s\n, arr2); // 正常打印abc // 给arr1手动加\0再试一次 char arr3[]{a,b,c,\0}; printf(arr3%s\n, arr3); // 正常打印abc return 0; }三、转义字符给字符 “变魔术”像 \n、\0 这种带反斜杠 \ 的字符叫做转义字符—— 简单说就是 \ 让后面的字符 “改变原意”。1. 最常用的例子\n换行#includestdio.h int main(){ // 没有转义字符直接打印 printf(abcndef\n); // 输出abcndef // \n让n变成换行符 printf(abc\ndef\n); // 输出abc换行def return 0; }转义字符高频清单如下转义字符作用\表示单引号比如打印\表示双引号比如打印\\表示反斜杠比如打印\\n换行\t制表符相当于按 Tab 键\r回车光标回到行首\0字符串结束符ASCII 码 03. 进阶八进制 / 十六进制转义字符\dddddd 是 1~3 位八进制数比如 \130 对应字符 X\xdddd 是 2 位十六进制数比如 \x30 对应字符 0以下给出演示操作#includestdio.h int main(){ printf(\130\n); // 八进制130 → 十进制88 → 字符X printf(\x30\n); // 十六进制30 → 十进制48 → 字符0 return 0; }转义字符完整参考https://zh.cppreference.com/w/c/language/escape总结字符用 包裹ASCII 码是字符的 “数字身份证”%c 可打印字符或对应 ASCII 码值字符串用 包裹末尾默认带 \0 作为结束符%s 是字符串专属占位符转义字符如 \n、\0通过 \ 改变字符原意是 C 语言处理特殊符号的核心。以上为今天的学习内容如果觉得这篇文章对你有帮助别忘了点赞、收藏、评论三连支持一下

相关新闻

JWT 深度解析:从核心优缺点到双令牌无感会话管理实战

JWT 深度解析:从核心优缺点到双令牌无感会话管理实战

在分布式系统的浪潮中,JSON Web Token(JWT)凭借其无状态、跨域友好的特性,已成为现代应用认证的基石。然而,令牌的撤销难题与续签困境,也让无数开发者为之困扰。本文将深入剖析 JWT 的架构设计、核心优缺&a…

2026/5/17 12:56:22 阅读更多 →
普通人要 OpenClaw 有什么用?

普通人要 OpenClaw 有什么用?

你可能最近老听到“OpenClaw”这个词,但一直没搞明白——这玩意儿到底是干啥的?跟普通人有什么关系?简单说,OpenClaw就是一个能帮你“自动干活”的智能助手,你动动嘴,它就能替你上网查资料、整理文件、写东…

2026/5/17 12:56:22 阅读更多 →
unsloth 安装在google colab

unsloth 安装在google colab

「uv」是什么? uv 是一个极速的 Python 包管理器(替代 pip/pipenv/poetry 等),由知名 Python 工具库 ruff 团队开发,核心特点是速度极快(比 pip 快 10-100 倍)、支持现代 Python 特性&#xff0…

2026/7/3 7:20:56 阅读更多 →

最新新闻

晋城酿造食品厂净化板如何选才能解决墙面难题

晋城酿造食品厂净化板如何选才能解决墙面难题

晋城本地特色食品以粮食醋发酵、杂粮深加工、小型卤味加工为主,大量酿造车间会长期挥发酸性气体,食品净化车间、无尘厂房改造经常遇到墙面腐蚀掉皮的困扰,和普通车间工况有明显区别,照搬通用板材很容易短期报废。 本地多家醋业厂房…

2026/7/3 14:45:10 阅读更多 →
HASL喷锡适配焊盘、孔径、板材、布局标准化设计规范

HASL喷锡适配焊盘、孔径、板材、布局标准化设计规范

HASL 批量生产出现堵孔、锡桥、露铜、焊盘共面度差、板材起泡翘曲等缺陷,七成根源并非制程管控问题,而是前期 PCB 布局、焊盘、孔径、板材选型未匹配喷锡工艺特性,设计先天存在 DFM 缺陷。本文从板材选型、焊盘结构、通孔孔径、大面积铜设计、…

2026/7/3 14:43:09 阅读更多 →
Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理

Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理

Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理 【免费下载链接】kiran-screensaver This program provides screensaver backend. 项目地址: https://gitcode.com/openeuler/kiran-screensaver 前往项目官网免费下载:https://ar.openeuler…

2026/7/3 14:41:08 阅读更多 →
lboot单元测试实践:使用lboot-test-runner验证功能正确性

lboot单元测试实践:使用lboot-test-runner验证功能正确性

lboot单元测试实践:使用lboot-test-runner验证功能正确性 【免费下载链接】lboot a lightweight bootloader implemented by the Rust language 项目地址: https://gitcode.com/openeuler/lboot 前往项目官网免费下载:https://ar.openeuler.org/a…

2026/7/3 14:41:08 阅读更多 →
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解

嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解

目录一、移位相关问题1.1 类型提升规则1.2 移位运算注意事项1.3 N位编码满量程值二、简称和符号含义2.1 通信协议相关**FDCAN****HSE****PLL****PCLK**2.2 CANopen 相关术语**PDO****SDO****PDO vs SDO 对比表****cob_id****CoE****BRS**2.3 数学符号三、交流与反馈欢迎大家有问…

2026/7/3 14:39:04 阅读更多 →
13DOF传感器与TM4C1299KCZAD的高精度定位系统设计

13DOF传感器与TM4C1299KCZAD的高精度定位系统设计

1. 项目背景与核心需求 在工业自动化、机器人导航和智能穿戴设备领域,精确的定位与运动追踪一直是技术难点。传统方案往往采用独立的惯性测量单元(IMU)与主控芯片分离的设计,导致系统延迟高、数据同步困难。这个项目创新性地将13自由度(13DOF)传感器与TM…

2026/7/3 14:39:04 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻