0Pricing
C Academy · Урок

Символы как целые числа

Значения ASCII

«Символы как целые числа» — бесплатный урок C Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения 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;
}

Преобразование char в цифру

Поскольку цифры расположены последовательно, можно преобразовать символ цифры в его числовое значение, вычтя '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 — это целые числа, с ними можно выполнять арифметические операции. Прибавление 1 к 'A' даёт код 'B'.

Это работает, потому что буквы алфавита расположены в ASCII последовательно.

#include <stdio.h>

int main(void) {
    char c = 'A';
    char next = c + 1;
    printf("After A comes %c\n", next);
    return 0;
}

Цикл по алфавиту

Можно выполнить цикл от 'a' до 'z', используя char в качестве счётчика цикла.

Цикл сравнивает коды символов так же, как числа.

#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' преобразует цифру типа char в её числовое значение, а разница между регистрами равна 32.

Часто задаваемые вопросы

Урок «Символы как целые числа» бесплатный?

Да — полный текст урока «Символы как целые числа» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C Academy, подпишись на CoddyKit PRO. Курс C Academy содержит 4 уроков всего.

Чему я научусь в уроке «Символы как целые числа»?

Значения ASCII Ты практикуешь C Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C Academy?

Предыдущий опыт не требуется. C Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Символы как целые числа»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C Academy?

Да. Каждый урок C Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Символы как целые числа
  2. Библиотека ctype
  3. Чтение символов
  4. Создание утилит для символов
← Назад к C Academy