Теоретические сведения. Для представления текстовой информации в языке С++ используются символы (константы), символьные переменные и строки (строковые константы)

Для представления текстовой информации в языке С++ используются символы (константы), символьные переменные и строки (строковые константы), для которых в языке С++ не введено отдельного типа в отличие от некоторых других языков программирования.

Для символьных данных в С++ введен тип char. Описание символьных переменных:

char список_имен_переменных;

Например:

const char c='c';

//символ – занимает один байт, его значение не меняется

char a,b;

/*символьные переменные, занимают по одному байту,

значения меняются*/

const char *s="Пример строки\n";

//текстовая константа

Строка – это последовательность символов, заключенная в двойные кавычки (" ").

Размещая строку в памяти, транслятор автоматически добавляет в ее конце символ '\0' (нулевой символ или нулевой байт, является признаком конца строки). В записи строки может быть и один символ: ”А” (заключен в двойные кавычки), однако, в отличие от символьной константы 'А' (используются апострофы) длина строки ”А” равна 2 байтам.

В языке С++ строка – это пронумерованная последовательность символов (массив символов), она всегда имеет тип char[]. Все символы строки нумеруются, начиная с нуля. Символ конца строки также нумеруется – ему соответствует наибольший из номеров. Таким образом, строка считывается значением типа «массив символов». Количество элементов в таком массиве на 1 больше, чем изображение соответствующей строки, так как в конец строки добавлен нулевой символ '\0' (рис.).

 

A \0   A
”А” строка (2 байта)   'А' символ (1 байт)

 

Рис. Представление строки и символа

 

 

Символьная строка в программном коде может располагаться на нескольких строках. Для переноса используется символ '\' с последующим нажатием клавиши ввод. Символ '\' игнорируется компилятором, и следующая строка считается продолжением предыдущей.

Присвоить значение строке с помощью оператора присваивания нельзя. Поместить строку в массив можно либо при вводе, либо с помощью инициализации:

char s1[] = ”ABCDEF”; //инициализация строки

char s2[]={'A','B','C','D','E','F','\0'};//инициализация строки

 

Операция вычисления размера (в байтах) sizeof действует для объектов символьного типа и строк.

Пример 1.

// Определение размера строк

#include <iostream.h>

void main() {

char s1[10]="string1";

int k=sizeof(s1);

cout<<s1<<"\t"<<k<<"\n";

char s2[]="string2";

k=sizeof(s2);

cout<<s2<<"\t"<<k<<"\n";

char s3[]={'s','t','r','i','n','g','3','\0'};

/*окончание строки '\0' следует соблюдать, формируя

в программах строки из отдельных символов*/

k=sizeof(s3);

cout<<s3<<"\t"<<k<<"\n";

char *s4="string4";

//указатель на строку, ее нельзя изменить

k=sizeof(s4);

cout<<s4<<"\t"<<k<<"\n";

}

Результат выполнения программы:

string1 10 – выделено 10 байтов, в том числе под '\0'

string2 8 – выделено 8 байтов (7 + 1 байт под '\0')

string3 8 – выделено 8 байтов (7 + 1 байт под '\0')

string4 2 – размер указателя 2 байта

 








Дата добавления: 2015-02-16; просмотров: 630;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.