Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билет №2.Одномерный массив. Доступ к элементам....doc
Скачиваний:
22
Добавлен:
15.04.2019
Размер:
168.96 Кб
Скачать

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

В программах на языке С часто используются массивы строк. Например, сервер базы данных сверяет команды пользователей с массивом допустимых команд. В качестве массива строк в языке С служит двухмерный символьный массив. Размер левого измерения определяет количество строк, а правого — максимальную длину каждой строки. Например, в следующем операторе объявлен массив из 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 80

char text[MAX][LEN];

int main(void)

{

register int t, i, j;

printf("Для выхода введите пустую строку.\n");

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++) putchar(text[i][j]);

putchar('\n');

}

return 0;

}

Пользователь вводит в программу строки текста, заканчивая ввод пустой строкой. Затем программа выводит текст посимвольно.

Размер правого измерения указывать не нужно, если в вызывающей функции массив объявлен как **х и размещен динамически