Главная > Урок > Тип данных char

Записывайся на этот курс на Stepike!

Тип данных char

Пожалуйста, приостановите работу AdBlock на этом сайте.

Как вы уже знаете, тип данных char используется для хранения отдельных символов. Оказывается, кроме символов, в переменную данного типа можно записать целое число. При этом размер этого типа данных всего 256 значений. В переменной данного типа можно хранить значения от 0 до 255 включительно, либо от -128 до 127. Это зависит от вашего компилятора.

Вот посмотрите:

#include <stdio.h>
int main(void){
  char ch = 97;

  printf("%d = %c\n",ch,ch);
  
  return(0);
}

Сейчас поясню, зачем это нужно. В памяти компьютера всё хранится в виде 0 или 1, это нам известно. Чтобы хранить числа, компьютер переводит их в двоичную систему счисления. Но как быть с буквами, знаками препинания? Для этого люди придумали специальные таблицы, которые называются кодировками.

В такой таблице каждому символу сопоставляется определённое число. И уже это число преобразуется в двоичную систему и хранится в памяти компьютера. С кодировками часто бывают проблемы. Они возникают из-за того, что одному числу в разных таблицах могут соответствовать разные символы.

Язык Си использует одну из таких таблиц – таблицу ASCII (аббр. American Standard Code for Information Interchange).

В ней первые числа от 0 до 32 зарезервированы для служебных команд, например, 10 используется для перевода строки.А вот символ с кодом 0 обозначает конец символьной строки. Он нам скоро понадобится.
Вот посмотрите на следующий пример.

Листинг 1.

#include <stdio.h>
int main(void){
  char ch = 10;

  printf("te%cst\n",ch);
  return(0);
}

А вот результат её работы.

Пример вывода служебного символа на экран

Рис.1 Пример вывода служебного символа на экран

Как видите, символ с кодом 10, действительно, переводит строку (соответствует escape-последовательности \n).

Расскажи друзьям!
Или поддержи проект.

Практика.

Решите предложенные задачи:

Для удобства работы сразу переходите в полноэкранный режим

Исследовательские задачи для хакеров

  1. Проверить как в вашей системе работает тип char. Для этого можете использовать следующую программу:
    #include <stdio.h>
    
    int main(void){
      
      char k = 0;
    
      for(int i = 0; i < 255; i++){
        k = i;
        printf("k = %d
    ", k);
      }
    
      return 0;
    }
  2. Найти в интернете таблицу с символами ASCII. Посмотреть каким символам соответствуют числам от 33 до 127.

Дополнительные материалы.

  1. пока нет

Комментарии:

Чтобы код красиво отображался на странице заключайте его в теги [code] здесь писать код [/code]

Николай Евсюков
В первой исследовательской задаче для хакеров 2 ошибки
1.
printf("k = %d
", k);
Должно быть
printf("k = %d", k);

2. for(int i = 0; i < 255; i++)
Должно быть
for(int i = 0; i < 256; i++)
Чтобы захватить 255 (у нас же от 0 до 255 предполагается.)

3. Предположу что имелось ввиду вывести данные из ASCII таблицы.
Я предлагаю так
printf("k(%d) = %c, ", i, k);
так видно какой цифре - что соответствует. Безликая К ни о чем не говорит.