将字符视为整数
ASCII 值
将字符视为整数 是 CoddyKit 上的免费 C Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C Academy 课程共包含 4 节课。
字符就是数字
在 C 语言中,char 只是一个较小的整数。每个字符都有一个由 ASCII 表定义的数值。
字母 'A' 会以数字 65 的形式存储,'B' 是 66,依此类推。
#include <stdio.h>
int main(void) {
char c = 'A';
printf("The character %c has value %d\n", c, c);
return 0;
}打印 ASCII 值
使用 %d 格式说明符将 char 作为整数值打印,使用 %c 将其作为字符打印。
同一个变量可以用这两种方式查看。
#include <stdio.h>
int main(void) {
char letter = 'z';
printf("As char: %c\n", letter);
printf("As int: %d\n", letter);
return 0;
}数字字符也有编码
字符 '0' 不是数字 0。它的 ASCII 值是 48。
数字字符 '0' 到 '9' 按顺序对应 48 到 57 的编码。
#include <stdio.h>
int main(void) {
printf("'0' = %d\n", '0');
printf("'9' = %d\n", '9');
return 0;
}字符转数字
由于数字字符是连续排列的,因此可以通过减去 '0' 将数字字符转换为数值。
'7' - '0' 等于 7。
#include <stdio.h>
int main(void) {
char d = '7';
int value = d - '0';
printf("The digit value is %d\n", value);
return 0;
}字符上的算术运算
由于 char 是整数,您可以对它们进行数学运算。给 'A' 加上 1,就会得到 'B' 的编码。
这是因为字母表中的字母在 ASCII 中是连续排列的。
#include <stdio.h>
int main(void) {
char c = 'A';
char next = c + 1;
printf("After A comes %c\n", next);
return 0;
}遍历字母表
您可以使用 char 作为循环计数器,从 'a' 循环到 'z'。
循环会像比较数字一样比较字符编码。
#include <stdio.h>
int main(void) {
for (char c = 'a'; c <= 'z'; c++) {
printf("%c", c);
}
printf("\n");
return 0;
}大小写之差
在 ASCII 中,大写字母和小写字母相差 32。'a' 是 97,而 'A' 是 65。
因此,'a' - 'A' 等于 32。
#include <stdio.h>
int main(void) {
printf("'A' = %d\n", 'A');
printf("'a' = %d\n", 'a');
printf("Gap = %d\n", 'a' - 'A');
return 0;
}手动转换大小写
知道差值是 32 后,您就可以通过减去 32 将小写字母转换为大写字母。
这正是 toupper 在底层所执行的操作。
#include <stdio.h>
int main(void) {
char lower = 'm';
char upper = lower - 32;
printf("%c becomes %c\n", lower, upper);
return 0;
}特殊字符
控制字符也有编码。换行符 '\n' 是 10,制表符 '\t' 是 9,字符串结束符 '\0' 是 0。
空格字符是 32。
#include <stdio.h>
int main(void) {
printf("newline = %d\n", '\n');
printf("tab = %d\n", '\t');
printf("space = %d\n", ' ');
return 0;
}char 可以存放小整数
char 通常可以存放-128 到 127(有符号)或 0 到 255(无符号)之间的值。
您可以直接将小整数存储在 char 中。
#include <stdio.h>
int main(void) {
char small = 100;
small = small + 5;
printf("small = %d\n", small);
return 0;
}构建凯撒移位
结合这些概念,一个简单的凯撒密码会使用字符算术,将每个字母移动固定的数量。
这里我们将一个字母向前移动 3 位。
#include <stdio.h>
int main(void) {
char c = 'x';
char shifted = 'a' + (c - 'a' + 3) % 26;
printf("%c shifted by 3 = %c\n", c, shifted);
return 0;
}快速检查
检验您对字符作为整数的理解。
回顾
您了解到,在 C 中:
char是一种存放 ASCII 编码的小整数类型。%c将其作为字符打印,%d将其作为数字打印。- 数字
'0'-'9'和字母都是连续排列的,因此可以进行算术运算。 c - '0'会将数字字符转换为其数值,而大小写之差是 32。
常见问题解答
「将字符视为整数」课时是免费的吗?
是的 — 「将字符视为整数」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C Academy 课程的其余内容,请升级到 CoddyKit PRO。 C Academy 课程共包含 4 节课。
「将字符视为整数」这节课中我会学到什么?
ASCII 值 你通过在浏览器中直接运行的动手代码来练习 C Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 C Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 C Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「将字符视为整数」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 C Academy 课中编写并运行代码吗?
能。每节 C Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。