Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prog (2).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
75.68 Кб
Скачать

22. Символьный тип: размер, диапазон. Связь символа и ascii-кода.

Способы ввода и вывода символов. Получение кода символа.

символьный тип char. Описание символьных переменных имеет вид:

char a, z;

Для ввода и вывода символьных значений в форматных строках библиотечных функций printf() и scanf() используется спецификатор %c, например:

char c;

printf("Введите символ: ");

scanf("%c",&c);

printf("Вы ввели символ %с", c);

Помимо scanf() и printf() для ввода и вывода символов в библиотеке предусмотрены специальные функции обмена:

getch() – функция без параметров. Позволяет читать с клавиатуры по одному символу за обращение. Как и при использовании scanf(), чтение вводимых данных начинается после нажатия клавиши Enter.

putchar(X) – выводит символьное значение X на экран.

Пример (программа считает число значащих символов (не пробелов) в строке, которая заканчивается точкой):

char c; int n;

printf("Напишите предложение с точкой в конце:\n");

// сначала счетчик символов n равен нулю

// цикл выполняется, пока считанный с клавиатуры символ не равен точке

for (n = 0; (c = getch()) != '.'; )

{

// выводим считанный символ на экран

putch(c);

// если символ не является пробелом, увеличиваем счетчик

if (c!=' ') ++n;

}

printf("\nЧисло введенных символов (без пробелов): %d", n);

Результаты работы программы:

Напишите предложение с точкой в конце:

1 2 3 4 5

Число введенных символов (без пробелов): 5

Внутренние коды и упорядоченность символов.

Данные типа char представлены численными значениями своих внутренних кодов. Благодаря этому возможно упорядочивание символов. Следующая программа выводит на экран десятичные коды символов от 0 до 9:

char c;

for (c='0'; c < '9'; c++)

printf("Символ %c - %d\n", c, c);

Результат работы программы:

Символ 0 - 48

Символ 1 - 49

Символ 2 - 50

Символ 3 - 51

Символ 4 - 52

Символ 5 - 53

Символ 6 - 54

Символ 7 - 55

Символ 8 - 56

Таким же образом можно вывести на экран, например, коды символов от a до z (a будет иметь код 97, b – код 98, и т. д.).

23.Символьные строки. Null-символ. Ввод и вывод символьных

строк. Строка считается массивом символов, то есть имеет тип char []. Количество элементов массива char будет на 1 больше, чем число символов в строке за счет добавления нулевого байта. Символьная строка в С++ обязательно должна заканчиваться NULL-символом (записывается как '\0' или NULL). NULL-символ также называют признаком конца строки. Строку можно инициализировать:

1) при определении символьного массива, например (записываем в str строку string и посимвольно выводим ее на экран вместе с кодами символов):

char str[10] = "String";

for (int i = 0; i < 10; i++) printf("%c - %d\n", str[i], str[i]);

В символьный массив размерности 10 может поместиться строка не длиннее 9 символов. При инициализации символьного массива константной строкой можно не указывать размер массива, например:

char str[] = "Это новая строка";

Если инициализация не производится, размер нужно задавать обязательно, то есть строка следующего вида приведет к ошибке компиляции:

char str[];2) С помощью функций ввода-вывода printf(), scanf(), при этом используется спецификатор %s.

char str[15];

printf ("Введите строку: ");

scanf("%s",str);

printf ("Вы ввели строку: %s ", str);

3) с использованием функции копирования строк strcpy(приемник, источник).

Пример использования функции strcpy:

char str1[10], str2[10];

strcpy(str1, "Hello");

strcpy(str2, str1);

Существует функция strncpy (приемник, источник, число), которая позволяет задавать в последнем аргументе максимальное число копируемых символов. Следует заметить, что она не производит автоматическое добавление нулевого байта в конец строки. Пример использования:

char str1[10]={0}, str2[10]={0};

strncpy(str1, "Hello world",9);

strncpy(str2, str1,9);

4) с использованием функции gets(). Пример:

char s[80];

gets(s);

Инициализировать символьную строку можно во время ее объявления, например:

char name[5]={'М','a','р','к','\0'};

char name[5]="Марк"; // упрощенный синтаксис для строк

Для ввода/вывода строк с помощью printf(), scanf() используется спецификатор формата %s. Для использования функций работы со строками необходимо подключить заголовочный файл "string.h".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]