Методичні вказівки до виконання практичних та лабораторних робіт з курсу «Обчислювальна техніка та програмування», страница 21

//функція на виході видає кількість символів рядкового літерала

size_t strlen (const char*S)

{for (int i=0; S [i]; ++i);

return i;}

//функція вертає покажчик на рядковий літерал S1 в що копіюється рядок S2

char strcpy (char*S1, const char*S2)

{

for (int i=0; S1 [i] =S2 [i]; ++i);

return (S1);

}

Додаток з пакету string.h.

void*memchr (const void*_s, int_c, size_t_n);

Функція шукає заданий символ ‘c’, в блоку пам'яті, на початок  якого вказує s,

розміру n байт. Якщо символ ‘c’ знайдений, функція вертає покажчик на цей символ і якщо немає, null.

int memcmp (const void*s1, const void*_s2, size_t_n);

Функція порівнює size_t_n  байт двох буферів, на початок яких вказують s1 і s2. Функція вертає значення: менш нуля, якщо s1<s2; рівне нулю, якщо s1==s2; більше нуля, якщо s1>s2.

void*memcpy (void*_dest, const void*_src, size_t_n);

Функція копіює n байтів з буферу на початок якого вказує src, в буфер на початок якого вказує dest. Буфери не повинні перемикатися в пам'яті. Функція вертає покажчик dest.

void*memmove (void*_dest, const void*_src, size_t_n);

Функція аналогічна функції memcpy, але буфери джерела і приймальника можуть перемикатися.

void*memset (void*_s, int_c, size_t_n);

Функція встановлює n байтів буферу в задане значення –‘c’, і вертає покажчик на буфер s.

char*strcat (char*_dest, const char*_src);

Функція реалізує сціплення рядка dest  з рядком src. Функція вертає покажчик на початок отриманого рядка (dest). Проміжний символ‘\0’ рядка dest гаситься.

char*strchr (const char*_, int_c);

Функція вертає покажчик на позицію першого входження символу “c” в рядок на яку вказує s. В рядок s включається і символ ‘\0’.

int strcmp (const char*_s1, const char*_s2);

Функція виконує порівняння двох рядків, на початок яких вказують s1 і s2. Функція вертає значення: менш нуля, якщо s1<s2; рівне нулю, якщо s1==s2; більше нуля, якщо s1>s2.

size_t strcspn (const char*-s1, const char*_s2);

Функція зіставляє кожний символ рядка s1 з всіма символами рядка, на яку вказує s2. Вертає довжину сегменту s1, який складається тільки з символів,  що не входять в s2. Довжина відраховується від кожного рядка s1. Якщо рядок s1 починається з символу, що зустрічається в рядку s2, повертається нуль. Якщо s1 не містить жодного символу рядка s2, то вертається значення ,що співпадає з довжиною рядка s1. Нуль-термінатор у порівнянні не бере участь.

char*strerror (int_errnum);

За значенням аргументу errnum відшукується повідомлення про системну помилку. Значення errnum використовується як індекс в внутрішній таблиці рядків повідомлень про помилку. На початок таблиці вказує проголошена в файлі заголовку stdlib. h зовнішня змінна sys_errlist. Наприклад:

int strlen (const char*_s);

Функція вертає довжину рядка в байтах, на яку вказує s. Нуль-терминатор не враховується

char*strncat (char*_dest, const char*_src, size_t_maxlen);

Приєднує maxlen символів з рядка, на яку вказує src, до рядка, на яку вказує dest. Рядок dest повинен містити не менше maxlen вільних байтів. Якщо maxlen більше рядка src виконується проста конкатенація.

int strnсmp (const char*_s1, const char*_s2, size_t_maxlen);

Функція аналогічної функції strcmp () і відрізняється тим, що виконується порівняння перших maxlen байтів.

char*strncpy (char*_dest, const char*_src, size_t_maxlen);

Функція копіює maxlen байт з рядка, на яку вказує src, в інше місце в пам'яті, на що вказує dest. Нуль-термінатор теж копіюється. Якщо maxlen менш довжини рядка src, до рядка src не приєднується символ“\0”. І якщо більше, то рядок src переноситься повністю, а символи ,що залишалися заповнюються символом “\0”. Функція вертає покажчик dest.