Курс — «Программирование на C для начинающих». Массивы и строки. #18 Строки и их обработка
Здравствуйте, дорогие друзья.
Строки в языке программирования C представляют собой последовательности символов, завершающихся нулевым символом (\0
). Строки используются для хранения и обработки текстовых данных. В этом разделе мы рассмотрим, как объявлять, инициализировать и обрабатывать строки в языке C.
Объявление и инициализация строк
Строки в C обычно объявляются как массивы символов (char
). Нулевой символ (\0
) используется для обозначения конца строки.
Пример объявления и инициализации строки:
1 2 3 4 5 6 7 8 9 10 11 |
#include <stdio.h> int main() { char str1[] = "Hello, World!"; // Инициализация строки char str2[20] = "Hello, C!"; // Инициализация строки с заданным размером printf("str1: %s\n", str1); printf("str2: %s\n", str2); return 0; } |
В этом примере строка str1
инициализируется значением «Hello, World!», а строка str2
инициализируется значением «Hello, C!» с заданным размером 20 символов.
Ввод строк
Для ввода строк с клавиатуры можно использовать функции scanf
или gets
. Однако, функция gets
устарела и небезопасна, поэтому рекомендуется использовать функцию fgets
.
Пример ввода строки с использованием fgets
:
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <stdio.h> int main() { char str[100]; printf("Enter a string: "); fgets(str, sizeof(str), stdin); printf("You entered: %s\n", str); return 0; } |
В этом примере функция fgets
используется для ввода строки с клавиатуры. Введенная строка сохраняется в массиве str
, и затем выводится на экран.
Обработка строк
Для обработки строк в C используются различные функции, предоставляемые стандартной библиотекой string.h
. Вот некоторые из них:
strlen
: Возвращает длину строки.strcpy
: Копирует одну строку в другую.strcat
: Объединяет две строки.strcmp
: Сравнивает две строки.strncpy
: Копирует заданное количество символов из одной строки в другую.strncat
: Объединяет заданное количество символов из одной строки с другой.strncmp
: Сравнивает заданное количество символов из двух строк.
Пример использования функций для обработки строк:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include <stdio.h> #include <string.h> int main() { char str1[50] = "Hello, "; char str2[] = "World!"; char str3[50]; // Копирование строки strcpy(str3, str1); printf("str3 after strcpy: %s\n", str3); // Объединение строк strcat(str1, str2); printf("str1 after strcat: %s\n", str1); // Длина строки int len = strlen(str1); printf("Length of str1: %d\n", len); // Сравнение строк if (strcmp(str1, str3) == 0) { printf("str1 and str3 are equal\n"); } else { printf("str1 and str3 are not equal\n"); } return 0; } |
В этом примере используются функции strcpy
, strcat
, strlen
и strcmp
для обработки строк.
Преобразование строк
Для преобразования строк в числа и наоборот можно использовать функции из стандартной библиотеки stdlib.h
:
atoi
: Преобразует строку в целое число.atof
: Преобразует строку в число с плавающей точкой.sprintf
: Форматирует строку и сохраняет результат в массиве символов.
Пример преобразования строк:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <stdio.h> #include <stdlib.h> int main() { char str1[] = "123"; char str2[] = "3.14"; char str3[50]; // Преобразование строки в целое число int num1 = atoi(str1); printf("Integer value: %d\n", num1); // Преобразование строки в число с плавающей точкой float num2 = atof(str2); printf("Float value: %.2f\n", num2); // Форматирование строки sprintf(str3, "Number: %d, Pi: %.2f", num1, num2); printf("Formatted string: %s\n", str3); return 0; } |
В этом примере используются функции atoi
, atof
и sprintf
для преобразования строк в числа и форматирования строк.
Строки являются важной структурой данных в языке программирования C. Они позволяют хранить и обрабатывать текстовые данные. Понимание того, как объявлять, инициализировать и обрабатывать строки, а также использование функций для работы с ними, является ключевым навыком для начинающих программистов.
На этом все. Всем хорошего дня!