Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ Программирование и основы алгоритмизации...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.5 Mб
Скачать

Символьные и строковые данные Символьные константы

Символьные константы используются для изображения отдельных знаков, имеющих внутренние коды: A, a, ‘8’, ‘+’ и т.д.

Внутри апострофов можно записать любой символ, изображаемый на экране в текстовом режиме. Однако можно использовать и коды, не имеющие графического представления на экране, клавиатуре, принтере:

‘\n’ – перевод строки,

‘\r – возврат курсора к началу строки,

‘\b – возврат курсора на одну позицию,

‘\0’ – нулевой символ.

Символьная константа (символ) имеет целый тип, т.е. символы можно использовать в качестве целочисленных операндов в выражениях. Например:

int m,k;

………..

m = k+’b’;

Определять внутренние коды символов можно следующим образом:

cout<<0+’a’<<endl //97

<<0+’0’<<endl; //48

Строковые константы (строки)

Строковые константы заключаются в кавычки, например, “привет!”. В кавычки можно включать и неизображаемые символы:

“\n Текст \n на \n трех строках”.

В памяти все символы строки размещаются подряд, занимают по одному байту. В конце строки компилятор размещает нулевой символ ‘\0’ (завершающий ноль).

Следовательно, f занимает 1 байт, а f “ – 2 байта.

Символьные переменные

Пример объявления: char z, s;

Для ввода-вывода символьных и строковых данных в языке C используются функции из файла stdio.h. Символьные данные вводятся с клавиатуры функциями: scanf(“%c”,&z); int getchar(); выводятся на экран функциями - printf(“%c”,&z); int putchar(int c);

Функция getchar() читает с клавиатуры по одному символу за обращение и возвращает этот символ. Как и при использовании scanf(), чтение вводимых данных начинается после нажатия <Enter>: z=getchar(); Функция int putchar(int c) выводит символ c на экран и возвращает выведенный символ: putchar(z);

Пример. Вывести цифры от 0 до 9 и шестнадцатеричное представление их внутренних кодов.

#include <stdio.h>

void main()

{ char z;

for(z=’0’; z<=’9’; z++)

{if(z==’0’ \\ z==’5’) printf(‘\n’);

printf(“%c-%x”, z, z); //для десятичного представления - “%c-%d

}

}

Результат:

0-30 1-31 2-32 3-33 4-34

5-35 6-36 7-37 8-38 9-39

Строки – переменные

Отдельного типа для строк в языке C нет. Строки хранят в массивах символов. Особенность этих массивов – в конец массива, т.е. строки, добавляется завершающий нуль: ‘\0’. Поэтому при работе со строками длину массива не указывают.

Присвоить значение массиву символов операцией присваивания нельзя. Возможны следующие варианты.

  1. Инициализацией, при объявлении:

char a[]=”привет!”;

printf(“%s”, a);

Длина массива a8 символов. 8-й байт выделяется при инициализации. Это сокращенный вариант инициализации. Обычный вариант:

char a[]={‘п’,’р’,’и’,’в’,’е’,’т’,’!’,’\0’};

Примечание. При формировании строки следует добавлять ’\0’ в конец символьного массива.

  1. Вводом:

char a[80]; //в массив a можно ввести строку

char* b; //по указателю можно выделить динамическую память

//под строку

scanf(“%s”,a); //верно

scanf(“%s”,b); //неверно – попытка ввода в неопределенный участок

//памяти

Однако можно: char* b=”привет!”;