Программирование на C и C++

Онлайн справочник программиста на C и C++

Массивы строк

В программировании типично использование массивов строк. Например, процессор ввода в базу данных может проверять команды пользователя в строковом массиве. Для создания массива строк используется двумерный массив символов. Левый индекс определяет число строк, а правый индекс - максимальное число символов в каждой строке. Данный фрагмент кода объявляет массив из 30-ти строк, причем каждая может содержать до 79 символов включительно:

char str_array [30] [80];

Доступ к отдельным строкам очень прост - необходимо просто определить левый индекс. Следующий оператор вызывает функцию gets(), передавая ей в качестве параметра третью строку массива str_array:

gets(str_array [2]) ;

Данная функция эквивалентна

gets(&str_array [2] [0]);

но предыдущий вариант более типичен при написании профессиональных программ.

Чтобы лучше понять принцип работы символьных массивов, рассмотрим следующую программу, использующую массив как основу простейшего текстового редактора.

#include <stdio.h>
#define MAX 100
#define LEN 255
char text[MAX][LEN];

/* простейший текстовый редактор */
int main(void)
{
register int t, i, j;
for (t=0; t<MAX; t++)
{
printf ("%d: ", t);
gets(text [t]);
if(!*text [t]) break; /* выход по пустой строке */
}

/* посимвольный вывод текста */
for (i=0; i<t; i++) {
for(j=0; text[i][j]; j++) printf("%с", text[i][j]);
printf ("%с", '\n');
}
return 0;
}

Данная программа осуществляет ввод текста, пока не встретится пустая строка. Затем она отображает каждую строку. В целях иллюстрации она выводит текст посимвольно, с использованием первого индекса. Поскольку каждая строка массива завершается нулевым символом, подпрограмма, отображающая текст, может быть упрощена:

for (i=0; i<t; i++)
printf("%s\n", text[i]);