Описание и инициализация строки.

Обработка символьных строк

В языках Си/Си++ нет специально определенного строкового типа данных. Символьные строки организуются как массивы символов, последним из которых является символ \0, внутренний код которого равен нулю.

На длину символьного массива в Си нет ограничения.


Строка описывается как символьный массив.

Например:

char STR[20] ;

Одновременно с описанием строка может инициализироваться.

Возможны два способа инициализации строки :

с помощью строковой константы -

char S[10]="строка";

char S []="строка";

в виде списка символов -

char S[10]={'c','т','р','о','к','а','\0'};

По первому описанию под строку S будет выделено 10 байт памяти, из них первые 7 получат значения при инициализации (седьмой — нулевой символ).

Второе описание сформирует строку из семи символов.

Третье описание по результату равнозначно первому.


Можно так определить символьный массив:

char S[10]={'c','т','р','о','к','а'};

т. е. без нулевого символа в конце.

Но это приведет к проблемам с обработкой такой строки, так как будет отсутствовать ориентир на его окончание.

 

Отдельные символы строки идентифицируются индексированными именами. Например, в описанной выше строке

S [0] =' с', S[5]='a'.

Обработка строк обычно осуществляет перебор всех символов от начала до конца. Признаком конца такого перебора является обнаружение нулевого символа.


Пример:

в программе производятся последовательная замена всех символов строки на звездочки и подсчет длины строки.


В результате выполнения программы на экране получим: