Символьні рядки

Слайд 2

Ініціалізація символьного рядка С++ дозволяє ініціалізувати масиви при оголошенні: const char


Ініціалізація символьного рядка
С++ дозволяє ініціалізувати масиви при оголошенні:
const char text[]=“Ми

вивчаємо програмування”;
char slovo[11]=“University”;
char sl[]={‘U’,’n’, ‘i’,’v’,’e’,’r’,’s’,’i’,’t’,’y’,’\0’};
char tit[32]=“Hello, C++”;
Якщо кількість символів, що присвоюється рядку, менша від розміру масиву, більшість компіляторів С++ присвоюють символи NULL елементам рядкового масиву, що залишаються. Пізніше, в програмі, у цей масив можна буде вмістити довший рядок, обов'язково помістивши в кінці символ ‘\0’.
Слайд 3

Введення та виведення рядків Для вводу і виводу символьних даних у

Введення та виведення рядків
Для вводу і виводу символьних даних у бібліотеці

мови С (файл ) визначені наступні функції:
int getchar() - здійснює введення одного символу з вхідного потоку і повертає один байт інформації (символ) у вигляді значення типу int. Це робиться для розпізнавання ситуації, коли при зчитуванні буде досягнуто кінець файлу.
int putchar (int c) – розміщує в стандартний вихідний потік символ c.
Приклад:
# include
void main()
{char c, d;
c=getchar(); putchar(c);
d=getchar(); putchar(d);
}
Слайд 4

char* gets(char*s) – зчитує рядок s із стандартного потоку до появи

char* gets(char*s) – зчитує рядок s із стандартного потоку до появи

символу ‘\n’, сам символ ‘\n’ у рядок не заноситься. Повертає вказівник на цей рядок.
int puts(const char* s) – записує рядок у стандартний потік виводу, додаючи в кінці рядка символ ‘\n’, у випадку вдалого завершення повертає значення більше або рівне 0 і від’ємне значення у випадку помилки.
Також для вводу/виводу рядка можна використовувати функції scanf/printf, відповідно, задавши специфікатор формату %s:
# include
void main(){
const int n=10;
char s[n];
scanf(“%s”, s); printf(“%s”, s);}
Слайд 5

Бібліотечні функції для роботи з рядками Прототипи функцій для роботи з

Бібліотечні функції для роботи з рядками

Прототипи функцій для роботи з символьними

рядками знаходяться у файлі string.h. Тому для їх використання необхідна директорія препроцессора #include
1) функції для об’єднання символьних рядків
сhar *strcat(char *s1, char *s2);  - за рядком s1 розміщує рядок s2.  
Наприклад, є два рядки символів  
char *s1= "Ракетний";  
char *s2= " двигун";  
Результатом виконання функції strcat(s1, s2) буде рядок "Ракетний двигун"ів
сhar *strncat(char *s1, char *s2, int n);
Наприклад, strncat(s1, s2, 5);  
За рядком s1 буде розміщено 5 перших символів з рядка s2.
2) функції копіювання рядків 
char *strcpy(char *s1, char *s2);  
Повертає вказівник на перший символ рядка, отриманий в результаті копіювання символів рядка s2 в s1 до першого символа '\0'.  
Наприклад, strcpy(s1, s2). Рядок s2 копіюється в s1.
Слайд 6

char *strncpy(char *s1, char *s2, int n); Перші n символів з

char *strncpy(char *s1, char *s2, int n); 
Перші n символів з рядку

s2 копіюються в рядок s1.
3) функція визначення довжини рядка 
int strlen(char *s);  
Наприклад, int m;  
char *s= "Колобок";  
m=strlen(s);
4) функція порівняння символьних рядків  
іnt strcmp(char *s1, char *s2);  
Порівнюємо два рядки. Якщо вони співпадають, то функція повертає нуль. Якщо рядок s1s2 повертається число більше нуля.  
Порівняння відбувається за кодами в таблиці ASCII.)  
int strncmp(char *s1, char *s2, int n); 
Порівнюються перші n символів рядків s1 та s2.
5) функція визначення позиції першого входження заданого символа в рядок 
char *strchr(char *s, char c);  
Якщо заданий символ відсутній, то повертається нуль.