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

3. Символьні функції

Прототипи всіх обговорюваних тут функцій описані в заголовному файлі ctype. h.

isalpha(c) - Істина (не нуль), якщо буква

islower(c) - Істина (не нуль), якщо мала літера

isupper(c) - Істина (не нуль), якщо прописна буква

isdigit(c) - Істина (не нуль), якщо цифра від 0-9

isalnum(c)- Істина (не нуль), якщо цифра 0-9 або буква

Приклад:

Програма запитує в користувача його ініціал. Якщо користувач вводить що-небудь відмінне від букв, програма виводить повідомлення про помилку і попросить повторити введення.

#include <iostream.h>

#include <ctype.h>

void main()

{

char initial;

cout << "Введіть ініціал ?";

cin >> initial;

while (! isalpha (initial))

{

cout <<"\n Помилка \n";

cout << "Введіть ініціал?";

cin >> initial;

}

}

Функції перетворення символів.

tolower(c) – перетворить символ до нижнього регістра;

toupper(c) – перетворить символ до верхнього регістра.

4. Рядкові функції

Описуються у файлі string. h

char *strcat(char *s1, const char *s2);

додати рядок s2 у кінець масиву символів s1. Масив s1 повинен мати достатньо вільних елементів.

char *strncat(char *s1, const char *s2, unsigned m);

додати m символів рядка s2 у кінець масиву символів s1. Масив s1 повинен мати достатньо вільних елементів.

char *strchr( char *s, char c);

пошук першого входження символу c у рядку s

int strcmp(const char *s1, const char *s2);

дорівнюються рядки s1 і s2. Повертає:

якщо s1 < s2 - від’ємне значення;

якщо s1 > s2 - додатне значення;

якщо s1 і s2 збігаються - 0.

int strncmp(const char *s1, const char *s2, unsigned m);

теж, що і функція strcmp, але порівнюються перші m символів двох рядків.

Функції stricmp і strnicmp виконують ті ж дії, але без урахування регістра символів (тільки латинські символи).

char *strcpy(char *s1, const char *s2);

копіює рядок s2 у рядок s1.

char *strncpy(char *s1, const char *s2, unsigned m);

копіює перші m символів рядка s2 у рядок s1.

unsigned strlen(const char *s);

повертає довжину s. (Довжина рядка - кількість символів без урахування завершального нуля ’\0’.)

char *strlwr(char *s);

переводить рядок s у нижній регістр (тільки латинські символи).

char *strupr(char *s);

переводить рядок s у верхній регістр (тільки латинські символи).

char *strset(char *s, int ch);

заповнює весь рядок s символами ch.

char *strnset(char *s, int ch, unsigned m);

заміняє перші m символів рядка s на символ ch.

char *strrev(char *s);

перетворить рядок s в зворотному порядку.

unsigned strcspn(const char *s1, const char *s2);

повертає позицію в рядку s1 символу з рядка s2.

char *strpbrk(char *s1, const char *s2);

повертає покажчик на перший символ рядка s1, який міститься в рядку s2.

char *strrchr(char *s, char c);

пошук останнього входження символу c у рядку s

unsigned strspn(const char *s1, const char *s2);

повертає позицію в рядку s1 символа, що не входить у рядок s2.

char *strtok(char *s1, const char *s2);

виділяє фрагменти рядка s1, розділені одно- або багатосимвольними роздільниками з рядка s2. При першому звертанні до strtok видається адреса першого фрагмента. Наступні виклики з завданням NULL замість першого аргументу (s1) будуть видавати адреси наступних фрагментів із рядка s1 доти, поки фрагментів не залишиться.

Перетворення рядків у числа.

atoi(s) – перетворить s до цілого (alphabetic to integer);

atol(s) – перетворить до довгому цілому (alphabetic to long);

atof(s) – до числа з плаваючої точкою (alphabetic to float).

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