Курс — «Программирование на C для начинающих». Массивы и строки. #19 Функции для работы с массивами и строками
Здравствуйте, дорогие друзья.
Функции для работы с массивами и строками являются важными инструментами в языке программирования C. Они позволяют выполнять различные операции над массивами и строками, такие как копирование, объединение, сравнение и поиск. В этом разделе мы рассмотрим основные функции для работы с массивами и строками, предоставляемые стандартной библиотекой C.
Функции для работы с массивами
Для работы с массивами в C можно использовать стандартные функции, такие как memcpy
и memset
, которые предоставляются библиотекой string.h
.
memcpy
: Копирует блок памяти из одного места в другое.
Пример использования memcpy
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <stdio.h> #include <string.h> int main() { int src[5] = {1, 2, 3, 4, 5}; int dest[5]; // Копирование массива src в массив dest memcpy(dest, src, sizeof(src)); // Вывод элементов массива dest for (int i = 0; i < 5; i++) { printf("dest[%d] = %d\n", i, dest[i]); } return 0; } |
В этом примере функция memcpy
используется для копирования элементов массива src
в массив dest
.
memset
: Заполняет блок памяти заданным значением.
Пример использования memset
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> #include <string.h> int main() { int arr[5]; // Заполнение массива arr значением 0 memset(arr, 0, sizeof(arr)); // Вывод элементов массива arr for (int i = 0; i < 5; i++) { printf("arr[%d] = %d\n", i, arr[i]); } return 0; } |
В этом примере функция memset
используется для заполнения массива arr
значением 0.
Функции для работы со строками
Для работы со строками в C предоставляется множество функций, которые включены в стандартную библиотеку string.h
. Вот некоторые из них:
strlen
: Возвращает длину строки.
Пример использования strlen
:
1 2 3 4 5 6 7 8 9 10 11 |
#include <stdio.h> #include <string.h> int main() { char str[] = "Hello, World!"; int length = strlen(str); printf("Length of the string: %d\n", length); return 0; } |
В этом примере функция strlen
используется для определения длины строки str
.
strcpy
: Копирует одну строку в другую.
Пример использования strcpy
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> #include <string.h> int main() { char src[] = "Hello, World!"; char dest[20]; // Копирование строки src в строку dest strcpy(dest, src); printf("dest: %s\n", dest); return 0; } |
В этом примере функция strcpy
используется для копирования строки src
в строку dest
.
strcat
: Объединяет две строки.
Пример использования strcat
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> #include <string.h> int main() { char str1[50] = "Hello, "; char str2[] = "World!"; // Объединение строк str1 и str2 strcat(str1, str2); printf("str1: %s\n", str1); return 0; } |
В этом примере функция strcat
используется для объединения строк str1
и str2
.
strcmp
: Сравнивает две строки.
Пример использования strcmp
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <stdio.h> #include <string.h> int main() { char str1[] = "Hello"; char str2[] = "World"; int result = strcmp(str1, str2); if (result == 0) { printf("str1 and str2 are equal\n"); } else if (result < 0) { printf("str1 is less than str2\n"); } else { printf("str1 is greater than str2\n"); } return 0; } |
В этом примере функция strcmp
используется для сравнения строк str1
и str2
.
strncpy
: Копирует заданное количество символов из одной строки в другую.
Пример использования strncpy
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <stdio.h> #include <string.h> int main() { char src[] = "Hello, World!"; char dest[20]; // Копирование первых 5 символов строки src в строку dest strncpy(dest, src, 5); dest[5] = '\0'; // Добавление нулевого символа в конец строки printf("dest: %s\n", dest); return 0; } |
В этом примере функция strncpy
используется для копирования первых 5 символов строки src
в строку dest
.
strncat
: Объединяет заданное количество символов из одной строки с другой.
Пример использования strncat
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> #include <string.h> int main() { char str1[50] = "Hello, "; char str2[] = "World!"; // Объединение первых 5 символов строки str2 с строкой str1 strncat(str1, str2, 5); printf("str1: %s\n", str1); return 0; } |
В этом примере функция strncat
используется для объединения первых 5 символов строки str2
с строкой str1
.
strncmp
: Сравнивает заданное количество символов из двух строк.
Пример использования strncmp
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <stdio.h> #include <string.h> int main() { char str1[] = "Hello"; char str2[] = "World"; int result = strncmp(str1, str2, 3); if (result == 0) { printf("First 3 characters of str1 and str2 are equal\n"); } else if (result < 0) { printf("First 3 characters of str1 are less than str2\n"); } else { printf("First 3 characters of str1 are greater than str2\n"); } return 0; } |
В этом примере функция strncmp
используется для сравнения первых 3 символов строк str1
и str2
.
Функции для работы с массивами и строками являются важными инструментами в языке программирования C. Они позволяют выполнять различные операции над массивами и строками, такие как копирование, объединение, сравнение и поиск. Понимание и использование этих функций является ключевым навыком для начинающих программистов.
На этом все. Всем хорошего дня!