Читайте также:
|
|
Символьный тип обозначается ключевым словом char. Char - это целый тип с диапазоном значений от -128 до 127, его можно использовать везде, где допустимо использование целых. Но чаще всего он используется при работе с символами (изображениями символов). В тексте программы на языке СИ могут встречаться символьные константы, которые представляют собой изображение символа в одиночных апострофах, например: 'f','q','ж',':','1'. Эти константы имеют тип char и их значение равно коду соответствующего символа в кодовой таблице (например: '0' имеет числовое значение 48). Данные константы могут использоваться в любых выражениях, где допустимо вхождение целых. Символьные данные занимают 1 байт памяти. На клавиатуре компьютера имеются клавиши только для части символов. На экране монитора могут быть созданы изображения для большинства символов. Нет клавиш для ввода символов псевдографики, с помощью которых рисуются рамки. В тоже время некоторые символы, генерируемые клавишами (например "Backspace", "Tab", "Esc") не имеют изображения, так как за этими символами закреплены определённые действия. Например после нажатия "Tab" курсор сдвигается на несколько символов. Символы, у которых нет графического образа имеют в СИ специальное представление, называемое иногда "Esc - последовательность", которое начинается с обратной наклонной черты (\).
Обозначение | Название | Обозначение | Название |
\a \b \f \n \r \ooo \xhh | сигнал-звонок возврат-на-шаг перевод-страницы новая-строка возврат-каретки восьмеричный-код шестнадцатеричный-код | \\ \? \' \” \v \t | обратная-наклонная-черта знак-вопроса апостроф двойная-кавычка вертикальная-табуляция горизонтальная-табуляция |
Здесь ooo – одна, две или три восьмеричные цифры, hh – одна или две шестнадцатеричные цифры.
Компилятор, встретив в программе комбинации знаков, рассматривает их как один символ. При выводе значений типа char создаётся изображение соответствующего символа. Если нужно вывести числовой код символа, то выражение типа char можно преобразовать к целому типу int: int (выр)
//В программе использованы 3 способа записи одной и той же символьной константы на примере латинской буквы A.
#include <iostream.h>
int main()
{ char c = 'A';
cout << "Код: " << int('A') << ", Символ: " << 'A' << ',' << '\x41' << ',' << '\101' << ',' << c;
return 0; }
Данная программа выдает: Код: 65, Символ: A, A, A, A
Для одного и того же символа 'A': 'A','\101','\x41'. Перечисленные три символьные константы имеют одно и тоже числовое представление: 65.
Оператор ввода > > пропускает пробельные символы, которые обычно используются для разделения вводимых данных, напр, при вводе нескольких чисел пропускаются все пробелы, табуляции, новые строки, размещенные между числами. Поэтому этот оператор неудобен при вводе одиночных символов, так как пробельные символы будут пропускаться. Для ввода символов лучше пользоваться функцией get(), которая возвращает код очередного символа входного потока. При вводе из стандартного входного потока cin вызов данной функции должен иметь вид cin.get().
Проверить возможность чтения из потока можно с помощью функции eof(), которая возвращает 1, если достигнут конец потока и из него ничего уже прочитать нельзя. Для входного потока cin вызов данной функции должен иметь вид cin.eof(). С помощью клавиатуры признак конца входного потока формируется одновременным нажатием двух клавиш Ctrl+Z.
Для вывода одиночного символа можно использовать функцию put(char c), которая выводит в поток свой аргумент. При выводе в стандартный выходной поток cout символа c вызов данной функции должен иметь вид cout.put(c).
//Программа читает с клавиатуры текст, пока не поступит EOF,то есть пока не будет нажата комбинация клавиш Ctrl+Z, и выводит каждое слово на отдельной строке
#include <iostream.h>
#include <conio.h>
int main()
{
char c;
while(!cin.eof()){ //пока не достигнут конец потока
c=cin.get(); //читает один символ
while((c == ' ' || c == '\n' || c == '\t') && (cin.eof())) //Пропуск пробельных символов
c = cin.get();
while(!cin.eof() && c!= ' ' && c!= '\n' && c!= '\t' && c!= EOF){ //Чтение и печать символов слова
cout.put(c);
c = cin.get(); }
cout.put('\n'); } //Переход к новой строке
return 0; }
пример работы программы. Когда б имел златые горы^Z
Когда
б
имел
златые
горы
Программа завершается при нажатии Ctrl+Z, что приводит к появлению на экране ^Z.
Дата добавления: 2015-07-08; просмотров: 489 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Массивы как аргументы функций. Функция сортировки массива методом пузырька. | | | Привести пример программы по обработке строк. |