Введение
В этом лабораторном занятии вы научитесь создавать и перебирать строковый массив на языке программирования C. Вы объявите строковый массив, переберете его с помощью цикла while, обработаете строки, завершающиеся нулевым символом, и выведете каждую строку из массива. Эти навыки являются обязательными для работы с текстовыми данными и создания более сложных приложений на языке C.
В лабораторном занятии рассматриваются следующие шаги: объявление строкового массива, перебор массива с помощью цикла while, обработка строк, завершающихся нулевым символом, вывод каждой строки из массива, а также компиляция и запуск программы на языке C. Завершив это лабораторное занятие, вы получите твердое понимание работы со строковыми массивами на языке C, что является фундаментальным концептом в программировании на C.
Объявление строкового массива
На этом шаге вы научитесь объявлять строковый массив на языке программирования C. Строковые массивы - это мощные структуры данных, которые позволяют хранить несколько строк в одной переменной.
- Откройте WebIDE и создайте новый файл с именем
string-array.cв директории~/project:
cd ~/project
touch string-array.c
- Откройте файл в WebIDE и добавьте следующий код:
#include <stdio.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
}
Этот код демонстрирует, как объявить строковый массив на языке C. Разберем основные компоненты:
const char*указывает на массив указателей на константные строкиfruits[]- это имя массива- Массив содержит четыре названия фруктов в виде строк
NULLиспользуется для обозначения конца массива, что будет полезно при последующих итерациях
Обратите внимание, что этот массив завершается нулевым символом (null-terminated), то есть последний элемент равен NULL. Это распространенная практика в языке C для строковых массивов, так как это помогает определить конец массива при его переборе.
Перебор массива с использованием цикла while
На этом шаге вы научитесь перебирать строковый массив с использованием цикла while на языке программирования C. Продолжая работу с предыдущим шагом, мы изменим файл string-array.c для вывода содержимого массива фруктов.
- Откройте файл
string-array.cв WebIDE: - Обновите код, добавив цикл while для перебора массива:
#include <stdio.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
int i = 0;
while (fruits[i]) {
printf("Fruit: %s\n", fruits[i]);
++i;
}
}
Разберем логику перебора:
int i = 0инициализирует счетчик индексаwhile (fruits[i])продолжает цикл до тех пор, пока не достигнет нулевого терминатора (NULL terminator)printf("Fruit: %s\n", fruits[i])выводит каждое название фрукта++iувеличивает индекс, чтобы перейти к следующему элементу
- Скомпилируйте программу:
gcc string-array.c -o string-array
- Запустите скомпилированную программу:
./string-array
Пример вывода:
Fruit: Apple
Fruit: Banana
Fruit: Cherry
Fruit: Date
Цикл while позволяет перебирать массив, проверяя на наличие нулевого терминатора, который сигнализирует о конце массива. Этот метод является распространенным и эффективным способом обхода строковых массивов на языке C.
Обработка строк, завершающихся нулевым символом
На этом шаге вы узнаете о строках, завершающихся нулевым символом (null-terminated strings), и о том, как они используются для обозначения конца строковых массивов в программировании на языке C. Понимание нулевого завершения (null termination) является важным аспектом при работе со строковыми массивами.
- Откройте файл
string-array.cв WebIDE: - Измените код, чтобы продемонстрировать нулевое завершение и длину строки:
#include <stdio.h>
#include <string.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
int i = 0;
while (fruits[i]) {
printf("Fruit: %s\n", fruits[i]);
printf("Length of %s: %lu\n", fruits[i], strlen(fruits[i]));
++i;
}
printf("Total number of fruits: %d\n", i);
}
Основные изменения:
- Добавлено
#include <string.h>для использования функцииstrlen() - Использована функция
strlen()для демонстрации длины строки - Добавлен подсчет общего количества фруктов с использованием индекса цикла
- Скомпилируйте программу:
gcc string-array.c -o string-array
- Запустите скомпилированную программу:
./string-array
Пример вывода:
Fruit: Apple
Length of Apple: 5
Fruit: Banana
Length of Banana: 6
Fruit: Cherry
Length of Cherry: 6
Fruit: Date
Length of Date: 4
Total number of fruits: 4
Понимание нулевого завершения:
NULLв конце массива действует как сигнальное значение (sentinel value)- Это помогает определить конец массива при его переборе
- Функция
strlen()работает путем подсчета символов до тех пор, пока не достигнет нулевого терминатора (\0) - Цикл останавливается, когда встречает указатель
NULL
Вывод каждой строки из массива
На этом шаге вы рассмотрите различные способы вывода строк из массива, включая варианты форматирования и продвинутые техники печати.
- Откройте файл
string-array.cв WebIDE: - Обновите код, чтобы продемонстрировать несколько методов вывода:
#include <stdio.h>
#include <string.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
// Method 1: Basic printing with index
printf("Method 1: Basic Printing\n");
int i = 0;
while (fruits[i]) {
printf("%d: %s\n", i + 1, fruits[i]);
++i;
}
// Method 2: Formatted printing with alignment
printf("\nMethod 2: Formatted Printing\n");
i = 0;
while (fruits[i]) {
printf("| %-10s | Length: %2lu |\n", fruits[i], strlen(fruits[i]));
++i;
}
// Method 3: Printing with additional formatting
printf("\nMethod 3: Advanced Printing\n");
i = 0;
while (fruits[i]) {
printf("Fruit #%d: [%s] has %lu characters\n",
i + 1, fruits[i], strlen(fruits[i]));
++i;
}
}
- Скомпилируйте программу:
gcc string-array.c -o string-array
- Запустите скомпилированную программу:
./string-array
Пример вывода:
Method 1: Basic Printing
1: Apple
2: Banana
3: Cherry
4: Date
Method 2: Formatted Printing
| Apple | Length: 5 |
| Banana | Length: 6 |
| Cherry | Length: 6 |
| Date | Length: 4 |
Method 3: Advanced Printing
Fruit #1: [Apple] has 5 characters
Fruit #2: [Banana] has 6 characters
Fruit #3: [Cherry] has 6 characters
Fruit #4: [Date] has 4 characters
Продемонстрированные техники вывода:
- Простой вывод с использованием индекса и функции
printf() - Форматированный вывод с указанием ширины и выравниванием
- Продвинутый вывод с дополнительной информацией
- Использование функции
strlen()для получения длины строки
Резюме
В этом практическом занятии (lab) вы научились объявлять строковый массив на языке программирования C, что позволяет хранить несколько строк в одной переменной. Вы также узнали, как перебирать массив с использованием цикла while, работать со строками, завершающимися нулевым символом (null-terminated strings), и выводить каждую строку из массива. Эти техники являются фундаментальными для работы со строковыми структурами данных в языке C и служат прочной основой для более сложных задач по манипуляции строками.



