В программировании типично использование массивов строк. Например, процессор ввода в базу данных может проверять команды пользователя в строковом массиве. Для создания массива строк используется двумерный массив символов. Левый индекс определяет число строк, а правый индекс - максимальное число символов в каждой строке. Данный фрагмент кода объявляет массив из 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]);