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 (рядки не рівні)
Спробуйте самі »