- •Операції з рядками Довідка з функцій. (Не для друку)
- •Визначення довжини рядків
- •Копіювання рядків
- •Функція strcpy
- •Функція strncpy
- •Функція strdup
- •Конкатенація рядків
- •Функція strсat
- •Функція strncat
- •Порівняння рядків
- •Функція strcmp
- •Функції stricmp, strcmpi
- •Функції CharToOem
- •Зміна порядку символів рядка На зворотній
- •Функції перевірки діапазону
- •Пошук символів
- •Функція strchr
- •Функція strrchr
- •Функція strspn
- •Функція strcspn
- •Функція strpbrk
- •Пошук подстрок
- •Функція strstr
- •Функція strtok
- •Функції перетворення типу
- •Перетворення рядка в число Функції atoi і atol
- •Функції _atoi64
- •Функції atof
- •Функції strtod
- •Перетворення числа в рядок Функції _itoa і _ltoa
- •Функція gcvt
Функції stricmp, strcmpi
Дані функції порівнюють два рядки, не розрізняючи регістру символів. Функція stricmp і має синтаксис:
int stricmp (const char *str1, const char *str2 ) ;
Що вертається значення й одержувані параметри ті ж, що й у функції strcmp.
Функція strncmp
Функція strncmp проводить порівняння певного числа перших символів двох рядків. Регістр символів при цьому враховується. Функція має наступний прототип:
int strncmp ( const char* str1, const char* str2, size_t num ) ;
Дана функція порівнює num перших символів двох рядків, на які вказують str1 і str2.
ПЕРЕТВОРЕННЯ РЯДКІВ
Елементи символьних рядків можуть бути перетворені з одного регістру в іншій. Для цього використовуються стандартні функції _strlwr і _strupr. Слід зазначити, що в деяких версіях компіляторів імена даних функцій можуть випливати без провідного символу підкреслення.
Функції strlwr, _strlwr
Функція strlwr приймає в якості параметра вказівник на рядок символів, перетворить цей рядок до нижнього регістру (рядкові символи) і повертає вказівник на отриманий рядок. Дана функція має наступний прототип:
char* strlwr(char* str) ;
Наступний фрагмент показує застосування функції strlwr:
char S [ ] = "Error" ; // оголошення й ініціалізація рядка
strlwr ( S ) ; // перетворення рядка в нижній регістр
cout << S << '\n' ; // вивід на екран "error"
Функції strupr, _strupr
Функція strupr оголошена в такий спосіб:
char* strupr ( char* str ) ;
Дана функція перетворить рядок символів, на який вказує str, у прописні букви ( до верхнього регістру). У результаті роботи функції вертається вказівник на отриманий рядок.
Наведені вище функції перетворення рядків, працюючи з вказівниками, перетворять вихідний рядок, який не завжди може бути відновлена, тому, якщо надалі коді програми буде потрібно скористатися оригіналом символьного рядка, перед використанням функцій strlwr і strupr необхідно зробити копію їх аргументів.
Функції CharToOem
У консольному додатку рядка кирилиці, що містять символи, некоректно відображаються у вікні додатка. Для рішення задачі відповідного перетворення кодів символів у заголовному файлі windows.h оголошена функція Chartooem, синтаксис якої має такий вигляд:
int CharToOem (char* const str1, const char* str2 ) ;
Функція робить перетворення кодів символів рядка str1 таким чином, що рядок символів str2 правильно відображає символи кирилиці. При цьому рядок str1 не змінюється, а розмір строкового масиву str2 повинна бути достатнім для зберігання перетвореного рядка. Наступний приклад робить перетворення кодів символів рядка str1 кирилиці, що містить символи, у рядок str2, яка правильно відображається у вікні додатка:
#include <iostream.h>
#include <windows.h>
void main ()
{
char S1 [ ] = "Кирилиця" ; // оголошення й ініціалізація рядка
char S2 [80] ; // оголошення рядка довжиною 25 символів
Chartooem ( S1, S2 ) ; // перетворення кодів символів кирилиці
сout << S1 << '\n' ; // вивід на екран "шЁшыышУр"
cout << S2 << '\n' ; // вивід на екран "Кирилиця"
}
Зміна порядку символів рядка На зворотній
Функція обігу рядка strrev міняє порядок проходження символів на зворотний (реверс рядка). Дана функція має прототип:
char* strrev ( char* str )
Наступний приклад демонструє роботу функції strrev.
char S [ ] = "Hello" ; // оголошення й ініціалізація рядка
cout << S << '\n' ; // вивід на екран "Hello"
strrev ( S ) ; // реверс рядка
cout << S << '\n' ; // вивід на екран "olleh"
Ця функція також перетворить рядокроригінал.