Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 1.11.1 Основні відомості про представлення рядків - Програмування С, С++теорія та практика (частина 1) - Studbook
Главная->Інформатика та програмування->Содержание->1.11.1 Основні відомості про представлення рядків

Програмування С, С++теорія та практика (частина 1)

1.11.1 Основні відомості про представлення рядків

Символьний рядок представляє собою набір з одного або більше символів.

Приклад : "Це рядок".

В мові Сі немає спеціального типу даних, який можна було б використовувати для опису рядків. Замість цього рядки представляються у вигляді масиву елементів типу скаг. Це означає, що символи рядка розташовуються в пам’яті в сусідніх комірках, по одному символу в комірці.

ц

е

 

р

я

д

о

к

\0

 

Рис. 1.13. Представлення рядка у вигляді масиву символів

Необхідно відмітити, що останнім елементом масиву є символ ‘\0’. Це нульовий символ (байт, кожний біт якого рівний нулю). У мові Сі він використовується для того, щоб визначати кінець рядка.

Примітка. Нульовий символ - це не цифра 0; він не виводиться на друк і в таблиці символів А8СІІ (див. додаток) має номер 0. Наявність нульового символу передбачає, що кількість комірок масиву повинна бути принаймні на одну більше, ніж число символів, які необхідно розміщувати в пам’яті. Наприклад, оголошення сЬаг з^г[10];

передбачає, що рядок містить може містити максимум 9 символів.

Основні методи ініціалізації символьних рядків.

•    сЬаг з^г1[]= "АВСгіе£";

•    сЬаг з£г2[] = {'А' ,    'В' ,    'С' , М' ,    'е', '£' ,0};

•   сЬаг з£г3[100]; де'Ьз (з'ЬгЗ) ;

•   сЬаг з£г4[100]; зсап£("%з",з£г4);

Усі константи-рядки в тексті програми, навіть ідентично записані, розміщуються за різними адресами в статичній пам’яті. З кожним рядком пов’язується сталий покажчик на його перший символ. Власне, рядок-константа є виразом типу „покажчик на скаг” зі сталим значенням - адресою першого символу.

Так, присвоювання р=“АВС” (р - покажчик на скаг) встановлює покажчикр на символ ‘А’; значенням виразу *(“АВС”+1) є символ ‘В’.

Елементи рядків доступні через покажчики на них, тому будь-який вираз типу „покажчик на скаГ” можна вважати рядком.

Необхідно мати також на увазі те, що рядок вигляду „х” - не те ж саме, що символ ‘х’. Перша відмінність : ‘х’ - об’єкт одного з основних типів даних мови Сі (скаг), в той час, як „х” - об’єкт похідного типу (масиву елементів типу скаг). Друга різниця : „х” насправді складається з двох символів - символу ‘х’ і нуль-символу.

X

 

X

\0

‘х’

“х”

 

Рис. 1.14. Різниця між представленням ‘х’ та “х”

 

57