0Pricing
C Academy · 课时

将字符视为整数

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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 将字符视为整数
  2. ctype 库
  3. 读取字符
  4. 构建字符工具
← 返回 C Academy