Описание и инициализация строки.
Обработка символьных строк
В языках Си/Си++ нет специально определенного строкового типа данных. Символьные строки организуются как массивы символов, последним из которых является символ \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'.
Обработка строк обычно осуществляет перебор всех символов от начала до конца. Признаком конца такого перебора является обнаружение нулевого символа.
Пример:
в программе производятся последовательная замена всех символов строки на звездочки и подсчет длины строки.
В результате выполнения программы на экране получим: