Теоретичні відомості

 

Символьний рядок (char *) – це послідовність символів, яка знаходиться в подвійний лапках. Символьний рядок є масивом символів, кожен символ – елемент масиву. Кожен рядок символів закінчується символом «\0», який вказує на кінець рядка. Прототипи стандартних функцій обробки символьних рядкiв знаходяться в заголовному файлі string.h. Стандартнi функції працюють тiльки з рядками символiв, а не з масивами символiв.

В С++ Builder тип рядка AnsiString реалізований, як клас, який об’явлено у файлі vcl/dstring.h. Це рядки з нульовим символом в кінці. При об’яві змінні типу AnsiString заповнюються порожніми рядками.

Для AnsiString визначені операції відношення: ==, !=, >, <, =, >=, <=. Порівняння відбувається з урахуванням регістру. Порівнюються коди символів., починаючи з першого, і якщо чергові символи не однакові, рядок, який вміщує символ з меншим кодом вважається меншим. Якщо всі символи співпали, але один рядок довший, то він вважається більшим.

Для AnsiString визначені операції присвоєння =, += і операція конкатенації (+). Визначена також операція індексації []. Індекси починається з одиниці, наприклад, якщо s1=”Четвер”, то s1[1]=’Ч’, s1[2]=’е’,…

Тип AnsiString використовується для ряду властивостей компонентів С++ Builder. Наприклад, для таких як властивість Сaption в мітках, розділів меню та ін.

Приклад 1.

Label->Caption=Edit1->Text+” “ + Edit2->Text;

Таблиця 5.1 - Деякі функції обробки символьних рядків типу *char

 

Назва функції Призначення
strlen() Визначає довжину рядка str.
strcat() До рядка str1 дописується рядок str2 (конкатенація рядків).
strncat() Дописує kol символів рядка str2 до рядка str1 (конкатенація рядків).
strchr() Шукає в рядку str перше розміщення вказаного символу.
strrchr() Шукає в рядку str останнє розміщення вказаного символу.
strcmp() Порівнює рядки str1 та str2. Результат від’ємний, якщо str1<str2; дорівнює нулю, якщо str1==str2 і більше нуля, якщо str1>str2. Порівнюються коди символiв.
strcnmp() Порівнює перших kol символів в рядках str1 та str2. Аналогiчно strcmp.
strcpy() Копіює байти рядка str2 в рядок str1.
strncpy() Копіює kol символів рядка str2 в рядок str1.
strlwr() Перетворює літери верхнього регістра в рядку на відповідні літери нижнього регістра.
strupr() Перетворює літери нижнього регістра в рядку на відповідні літери верхнього регістра.
strstr() Шукає в рядку str1 підрядки str2. Повертає вказівник на цей елемент в рядку str1, з якого починається підрядок str2.

 

Таблиця 5.2. - Деякі функції обробки символьних рядків типу AnsiString

 

Назва функції Призначення
Length() Визначає довжину рядка
Pos() Шукає перше входження підрядка.Якщо пошук успішний функція повертає індекс першого символу знайденого входження. Якщо підрядок не знайдено повертає нуль.
SubString() Визначає підрядки, параметри: початковий і кінцевий індекс.
Delete() Видаляє підрядок, параметри: початковий індекс і кількість символів, які слід видалити.
Insert() Вставляє в рядок підрядок, початковий і заданий індекс.
AnsiUpperCase() Перетворює рядок символів у верхній регістр.
AnsiLowerCase() Перетворює рядок символів у нижній регістр.