Тип данных char в языке Си.

Тип данных char предназначен для хранения одного символа и занимает 1 байт (8 бит, значение CHAR_BIT из limits.h).
Спецификаторы формата %c - отображение символа (%d - отображение кода)
%x (%X большие буквы A-F) шестнадцатеричное представление
%o восьмеричное представление
Диапазон возможных значений:
-128 - 127 для char (значения CHAR_MIN и CHAR_MAX из limits.h)
0 - 255 для unsigned char (значение UCHAR_MAX из limits.h)
Перевод кодов в символы
'0'..'9' – цифры в формате символов (ASCII-коды: 48-57)
'A'..'Z' – заглавные (прописные) латинские буквы (ASCII-коды: 65-90)
'a'..'z' – маленькие (строчные) латинские буквы (ASCII-коды: 97-122)


// Выводит значения нажатых клавиш как символы и целые числа
#include <stdio.h> // printf()
#include <conio.h> // getch()
int main(){
    char ch = 'a';
    printf("%c \nPress a key (Esc for exit) \n", ch); // Выводим значение а и приглашение к нажатию кнопки(ок)
    while(ch != 27){ // Выполнять пока не нажата кнопка Esc
        ch = getch(); // Считываем символ
        printf("%c, %d \n", ch, ch); // Выводим значение ch как символа и как числа
    }
    return 0;
}

ASCII коды в языке Си. Преобразование символа в код.

ASCII коды Си

Пример программы работы со строками.


// Переводит int, float, double в строку и обратно
#include <stdio.h> // printf(), sprintf_s()
#include <stdlib.h> // atoi(), atof(), strtod()
int main(){
    char *str_int = "134"; // Строковое представление int
    char *str_float = "2.72"; // Строковое представление float
    char *str_double = "1.5"; // Строковое представление double
   
	int val_int = atoi(str_int); // Преобразование строки в int
    float val_float = atof(str_float); // Преобразование строки в float
    double val_double = strtod(str_double, NULL); // Преобразование строки в double

    printf("val_int = %d \n", val_int); // Вывод int
    printf("val_float = %f \n", val_float); // Вывод float
    printf("val_double = %f \n", val_double); // Вывод double

    const int buf_size = 10; // Размер буфера для строкового представления чисел
    char buf_int[buf_size]; // Буфер для int
    char buf_float[buf_size]; // Буфер для float
    char buf_double[buf_size]; // Буфер для double

    sprintf_s(buf_int, buf_size, "%d", val_int); // Преобразование int в строку
    sprintf_s(buf_float, buf_size, "%f", val_float); // Преобразование float в строку
    sprintf_s(buf_double, buf_size, "%f", val_double); // Преобразование double в строку

    printf("buf_int = %s \n", buf_int); // Вывод int
    printf("buf_float = %s \n", buf_float); // Вывод float
    printf("buf_double = %s \n", buf_double); // Вывод double
    return 0;
}
Вывод программы:
val_int = 134
val_float = 2.720000
val_double = 1.500000
buf_int = 134
buf_float = 2.720000
buf_double = 1.500000
2023-03-21



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

bool тип данных в языке Си.
Тип данных char в языке Си.
double тип данных языка Си. Число с плавающей точкой с двойной точностью.
Тип данных enum (или перечисление) в языке Си.
float тип данных языка Си.
int целочисленный тип данных языка Си.
long и long long целочисленные типы данных в языке Си.
short тип данных языка Си.
size_t тип данных языка Си.
struct тип данных языка Си.
union или объединение - тип данных в языке Си.
Ключевое слово языка Си _Bool