
- •2. Программа. Обзор существующих парадигм программирования.
- •6. Операторы инкремента и декремента. Побитовые операторы языка
- •7. Операторы присваивания. Условный оператор. Оператор sizeof.
- •12. Инструкции break и continue
- •18.Функция. Объявление и определение функции: назначение,
- •19. Функция. Возврат значения из функции: синтаксис, пример.
- •22. Символьный тип: размер, диапазон. Связь символа и ascii-кода.
- •23.Символьные строки. Null-символ. Ввод и вывод символьных
- •24.Функции работы со строками: назначение, синтаксис, примеры
- •26.Разыменование указателей. Арифметические операции над указателями. Связь указателей и массивов. Примеры.
- •27.Указатели как аргументы функций. Массивы указателей.
- •28.Указатель на константу, константный указатель на переменную,
- •30.Структуры, объединения, перечисления.
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".