Программирование на языке Си. Разработка и отладка программ на персональном компьютере с использованием программного пакета Borland C++, страница 5

В качестве имен переменных и констант  нельзя использовать зарезервированные в Си слова (ключевые  слова), например :if , else, for, const, char и т.д.

Строковые переменные и константы. Язык Си не содержит строкового типа данных. Для работы со строками Си использует  одномерные массивы, каждый элемент которого – один символ. В конце массива компилятор помещает так называемый нулевой символ ( \0 ), который является признаком конца строки и рассматривается как один символ..

Чтобы определить строковую переменную, нужно использовать тип char и указать число символов, которое может содержать строка, например:

char name[10];

Здесь name – имя переменной, а 10 – максимальное число символов в строке, включая нулевой символ \0.

Можно присвоить начальное значение строковой переменной, записав:

char name[ ]=”Иванов”;

Компилятор автоматически поместит в конце строки нулевой символ \0. В данном примере строка будет занимать в памяти 7 байт.

Определить строковую константу можно с помощью директивы  #define, заключив символы строки в кавычки:

#define  CLIENT  “Иванов”

Можно использовать типизированную строковую константу:

const  char  CLIENT=”Иванов”;

Escape-последовательности. Обратная косая черта ( \ ), или по-другому, обратный слэш, имеет в языке Си специальное значение. Ее называют escape-символом (читается эскейп).Она применяется для представления символов, которые нельзя непосредственно ввести с клавиатуры. Например, когда вы редактируете текст, клавиши Enter и Backspace связаны с особыми функциями. Чтобы использовать такие коды в программе, можно применить escape-последовательность, т. е. escape-символ, за которым следует escape-код. В табл. 3 приведены часто используемые в Си escape-последовательности.

Таблица 3

Escape-последовательности

Последовательность

Название

Функция

\a

Звонок

Подает звуковой сигнал

\f

Перевод страницы

Начало нового экрана

\n

Новая строка

Переход к началу новой строки

\t

Табуляция

Переход к следующей позиции табуляции

\’

Апостроф

Выводит апостроф

\”

Кавычка

Выводит  двойную кавычку

3.3. Элементарный ввод-вывод в Си

Особенностью Си является отсутствие специальных операторов ввода-вывода. Вместо этого используются  библиотечные функции. Рассмотрим кратко некоторые функции для ввода информации с клавиатуры  и вывода на экран. Напомним, что клавиатуру и дисплей в вычислительной технике часто называют консолью. 

Консольный ввод-вывод может быть двух видов: неформатированный и форматированный. 

Функции неформатированного консольного ввода-вывода работают с отдельными символами или строками символов.  Для ввода символов используется функция getchar(), не имеющая аргументов и возвращающая целое число. Для вывода символа используется функция putchar(int). Особенностью этой функции является то, что она не имеет автоматического перевода строки, и курсор остается сразу же за выведенным символом. Для перехода на новую строку необходимо вывести управляющий код (escape-последовательность) \n.

Рассмотрим программу, демонстрирующую применение функций getchar  и putchar.

/*putgetch . cpp  Программа, демонстрирующая ввод –вывод  символов */

#include<stdio.h>

#define INITIAL ‘H’    //Символьная константа

main()

{

char letter=’G’;

char in_letter;

putchar(INITIAL);     // Вывод константы INITIAL

putchar(letter);           // Вывод переменной letter

putchar(‘\a’);              // Звонок

putchar(‘\n’);              //Перевод строки

in_letter= getchar();    //Ввод символа с клавиатуры

putchar(‘\a’);               // Звонок

putchar(‘\n’);              //Перевод строки

putchar(in_letter);       //Вывод символа

putchar(‘\n’);              //Перевод строки

return 0;

}

Программа выводит на экран символы H и G, выдает звуковой сигнал и производит перевод строки. Затем программа ожидает ввода любого символа с клавиатуры. После этого вновь раздается звуковой сигнал и производится вывод полученного символа.

Задание. Наберите текст программы и запустите ее. Объясните полученные результаты.

Для ввода-вывода строк символов используются  функции gets() и  puts(). Напомним, что функция puts() автоматически переводит курсор на новую строку после ввода. Рассмотрим простую программу, использующую эти функции.