Символы и строки
Лекция 14
Цели:
ü получить представление о символьном типе данных и познакомиться с функциями, работающими с символами;
ü познакомиться с понятием строки в С++ и строчными функциями;
ü освоить методику написания алгоритмов с использованием символьных и строчных переменных, перевода таких алгоритмов на язык программирования С++ (с и без использования побитовых операций) и разработки соответствующего проекта в среде Visual C++ 6.0.
Символьным типом данных на языке С++ является тип char. На машинном уровне символы представляются как целые числа. Для хранения символов и манипулирования ими каждому символу поставлен в соответствие его код – целое число. Существует несколько стандартов, определяющих, какие коды каким символам соответствуют. В С++ для кодировки символов используется стандарт ASCII, определяющий коды от 0 до 127. Для представления русских букв используется стандарт КОИ-8 или CP-1251. В этих стандартах русские буквы кодируются числами от 128 до 255. Таким образом, все символы могут быть представлены в одном байте. Значением переменных символьного типа может быть либо числовой код символа, либо символьная константа. Присваивание вида ch=’ab’; приведет к ошибке. Символьная константа – это один символ, заключенный в апострофы. Переменным символьного типа можно присвоить значение целого типа, выходящее за пределы диапазона то 0 до 255, но при этом компилятор преобразует это значение к значению в пределах от 0 до 255.
|
|
Объявление переменной символьного типа:
сhar ch; //ch – переменная символьного типа
сh=’а’; // символы на языке С++ заключаются в апострофы
ch=235; // такое присваивание возможно
Так как значением символьной переменной может быть целое число, то к переменным символьного типа применимы арифметические операции: +, -, *, /. Символьные переменные можно сравнивать при помощи операций отношения: >, <, >=, <=, = =,!=. При этом следует учитывать то, что все эти операции производятся с целыми числами – кодами символов. Таким образом, символьные переменные сравниваются через ASCII-коды соответствующих символов. Чем «старше» символ, тем больший ASCII-код ему соответствует.
Для работы с символами определены библиотечные функции, описанные в файлах conio.h, ctype.h и stdio.h. Некоторые из этих функций описаны в табл.8.
Таблица 8 | |
Функция | Форма обращения к функции и её краткое описание |
Файл ctype.h | |
isalnum | i = isalnum(int с); i – переменная типа int i не равно нулю, если значение с – код буквы или цифры (A...Z, a...z, 0...9); i = 0 – в противном случае |
isalalpha | i = isalalpha (int с); i – переменная типа int i не равно нулю, если значение с – код буквы или цифры (A...Z, a...z); i = 0 – в противном случае |
isascii | i = isascii (int с); i – переменная типа int i не равно нулю, если значение с – код ASCII, т.е. принимает значение от 0 до 127; i = 0 – в противном случае |
isdigit | i = isdigit (int с); i – переменная типа int i не равно нулю, если значение с – цифра (О... 9) в коде ASCII; i = 0 – в противном случае |
toascii | i = toascii (int с); i – переменная типа int i принимает значение в диапазоне от 0 до 127, т.е функция преобразует целое число с в символ кода ASCII |
Файл stdio.h | |
scanf | scanf ("%c", &ch); Функция форматированного ввода с клавиатуры ch – переменная типа char. Формат ввода "%c" означает, что с клавиатуры будет считываться один символ |
printf | printf ("%c", ch); Функция форматированного вывода ch – переменная типа char. Формат вывода "%c" означает, что на экран будет выведен один символ |
getchar | ch = getchar (); Считывает очередной символ, введенный с клавиатуры. Введенный символ отображается на экране ch – переменная типа char, которая получает введенное с клавиатуры значение |
putchar | putchar (ch); Выводит символ сh на экран ch – переменная типа char |
Файл conio.h | |
getch | ch = getch (); Считывает один символ, введенный с клавиатуры без отображения на экране ch – переменная типа char, которая получает введенное с клавиатуры значение |
|
|