СтрокиОдномерный массив наиболее часто применяется в виде строки символов. Строка — это одномерный массив символов, заканчивающийся нулевым символом. В языке С признаком окончания строки (нулевым символом) служит символ '\0'. Таким образом, строка содержит символы, составляющие строку, а также нулевой символ. Это единственный вид строки, определенный в С.
Объявляя массив символов, предназначенный для хранения строки, необходимо предусмотреть место для нуля, т.е. указать его размер в объявлении на один символ больше, чем наибольшее предполагаемое количество символов. Например, объявление массива str, предназначенного для хранения строки из 10 символов, должно выглядеть так: char str[11]; Последний, 11-й байт предназначен для нулевого символа. Записанная в тексте программы строка символов, заключенных в двойные кавычки, является строковой константой, например, "некоторая строка" В конец строковой константы компилятор автоматически добавляет нулевой символ. Для обработки строк в С определено много различных библиотечных функций. Чаще всего используются следующие функции:
Эти функции объявлены в заголовочном файле <string.h>. Применение библиотечных функций обработки строк иллюстрируется следующим примером:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s1[80], s2[80];
gets(s1);
gets(s2);
printf("Длина: %d %d\n", strlen(s1), strlen(s2));
if(!strcmp(s1, s2)) printf("Строки равны\n");
strcat(s1, s2);
printf("%s\n", s1);
strcpy(s1, "Проверка.\n");
printf(s1);
if(strchr("Алло", 'e')) printf(" л есть в Алло\n");
if(strstr("Привет", "ив")) printf(" найдено ив ");
return 0;
}
Если эту программу выполнить и ввести в s1 и в s2 одну и ту же строку "Алло!", то на экран будет выведено следующее: Длина: 5 5 Строки равны Алло!Алло! Проверка, л есть в Алло найдено ив Следует помнить, что strcmp() принимает значение ЛОЖЬ, если строки совпадают (хоть это и несколько нелогично). Поэтому в тесте на совпадение нужно использовать логический оператор отрицания ! как в предыдущем примере.
|
| |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|