НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування C. Уроки W3Schools для початківців українською мовою

En Es De

C Рядкові функції


Рядкові функції

Мова C також має багато корисних рядкових функцій, які можна використовувати для виконання певних операцій над рядками.

Щоб їх використовувати, ви повинні включити файл заголовка <string.h> у свою програму:

#include <string.h>

Довжина рядка

Наприклад, щоб отримати довжину рядка, ви можете використати функцію strlen():

Приклад

char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet));
Спробуйте самі »

У розділі про рядки ми використовували sizeof, щоб отримати розмір рядка/масиву. Зауважте, що sizeof та strlen поводяться по-різному, як sizeof також містить символ \0 під час підрахунку:

Приклад

char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet));   // 26
printf("%d", sizeof(alphabet));   // 27
Спробуйте самі »

Також важливо знати, що sizeof завжди повертатиме розмір пам’яті (у байтах), а не фактичну довжину рядка:

Приклад

char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet));   // 26
printf("%d", sizeof(alphabet));   // 50
Спробуйте самі »

Об’єднання рядків

Щоб об’єднати (комбінувати) два рядки, ви можете використати функцію strcat():

Приклад

char str1[20] = "Hello ";
char str2[] = "World!";

// Приєднання str2 до str1 (результат зберігається в str1)
strcat(str1, str2);

// Надрукувати str1
printf("%s", str1);
Спробуйте самі »

Зауважте, що розмір str1 має бути достатньо великим, щоб зберегти результат об’єднання двох рядків (20 у нашому прикладі).


Копіювати рядки

Щоб скопіювати значення одного рядка в інший, можна скористатися функцією strcpy():

Приклад

char str1[20] = "Hello World!";
char str2[20];

// Скопіюйте str1 в str2
strcpy(str2, str1);

// Надрукувати str2
printf("%s", str2);
Спробуйте самі »

Зауважте, що розмір str2 має бути достатньо великим, щоб зберегти скопійований рядок (20 у нашому прикладі).


Порівняти рядки

Щоб порівняти два рядки, ви можете скористатися функцією strcmp().

Він повертає 0, якщо два рядки рівні, інакше значення, яке не дорівнює 0:

Приклад

char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "Hi";

// Порівняйте str1 і str2 і виведіть результат
printf("%d\n", strcmp(str1, str2));  // Повертає 0 (рядки рівні)

// Порівняйте str1 і str3 і виведіть результат
printf("%d\n", strcmp(str1, str3));  // Повертає -4 (рядки не рівні)
Спробуйте самі »