Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Met_C++.doc
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
620.54 Кб
Скачать

6.2 Методичні вказівки до організації самостійної роботи студентів

У мові С++ є кілька можливостей роботи з символьними даними. Класична робота зводиться до використання масива символів. Для того, щоб скористуватися стандартними функціями С++ для роботи з рядками, треба їх файли підключити в директиві #include <string.h>. Основні функції з цього пакету наведено нижче.

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

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

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

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

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.

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

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

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

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

int strlen (const char*_s);

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

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

Функція копіює рядок, на котрий вказує src, в інше місце в пам'яті, на що вказує est. Функція вертає покажчик на кінець рядка, що скопіювався в dest.

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

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

char *strlwr (char *_s);

Функція перетворює всі символи рядка, на початок якого вказує s, в малі літери. Функція повертає покажчик на початок цього рядка.

char *strups (char *_s);

Функція перетворює всі символи рядка, на початок якої вказує s, в великі літери. Функція вертає покажчик на отриманий рядок.

char *strset (char *_s, int_ch);

Функція заповнює рядок, на початок якого вказує s, символом ch. Функція вертає покажчик на отриманий рядок.

Приклад 6

Підрахувати кількість слів у рядку, враховуючи те, що пробілів між словами може бути скількі завгодно.

#include <iostream.h>

#include <conio.h>

void main()

{char *s=”Repetitio est mater studiorum”;

int i=1, col=0;

while (s[i]==’\0’)

{if (s[i]!=’ ’) { col++;

while (s[i]!=’ ’)

i++;}

else while (s[i]==’ ’)

i++;}

cout<<”\nKilkist sliv=”<<col<<’\n’;}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]