Скачать презентацию Рядки в C Рядок — послідовність Скачать презентацию Рядки в C Рядок — послідовність

Рядки в C ++.pptx

  • Количество слайдов: 11

Рядки в C ++ Рядки в C ++

Рядок - послідовність (масив) символів. Ознакою кінця рядка є нульовий символ  0. У Рядок - послідовність (масив) символів. Ознакою кінця рядка є нульовий символ 0. У C ++ рядок можна описати за допомогою масиву символів (масив елементів типу char), в якому слід передбачити місце для зберігання ознаки кінця рядка.

Створення рядків char str 1 [10]; // Рядок - масив з 10 символів. Початкове Створення рядків char str 1 [10]; // Рядок - масив з 10 символів. Початкове значення символів не визначено. char str 2 [10] = "Hello"; / * Використовується ініціалізація (Не присвоювання!). У перші 5 символів записується "Hello", в 6 - нуль-термінатор, значення трьох останніх не визначено. * / char str 3 [10] = {'H', 'e', 'l', 'o', ' 0'}; // Еквівалентно попередньому. char str 4 [10] = "Very long line"; char str 5 [] = "Very long line"; / * Компілятор автоматично визначає довжину масиву (в нашому випадку 15) і ініціалізує його послідовністю символів. * / char * str 6; / * Рядок - покажчик на символ. У більшості випадків для її використання буде потрібно виділити пам'ять. * / str 6 = (char *) malloc (10); free (str 6);

Операції над рядками Рядок можна обробляти як масив символів, використовуючи алгоритми обробки масивів або Операції над рядками Рядок можна обробляти як масив символів, використовуючи алгоритми обробки масивів або за допомогою спеціальних функцій обробки рядків. Для роботи необхідно підключити бібліотеку cstring. Функції стандартної бібліотеки вводу / виводу getchar (с) зчитує символ з зі стандартного потоку введення, повертає символ у форматі int gets (s) зчитує потік символів зі стандартного пристрою введення в рядок s доти, поки не буде натиснута клавіша ENTER

Довжина рядка strlen (ім'я рядка) визначає довжину зазначеного рядка, без урахування нульсимволу Копіювання рядків Довжина рядка strlen (ім'я рядка) визначає довжину зазначеного рядка, без урахування нульсимволу Копіювання рядків strcpy (s 1, s 2) виконує побайтное копіювання символів з рядка s 2 в рядок s 1 strncpy (s 1, s 2, n) виконує побайтне копіювання n символів з рядка s 2 в рядок s 1. повертає значення s 1 Конкатенація рядків strcat (s 1, s 2) об'єднує рядок s 2 з рядком s 1. Результат зберігається в s 1 strncat (s 1, s 2, n) об'єднує n символів рядка s 2 з рядком s 1. Результат зберігається в s 1 Порівняння рядків strcmp (s 1, s 2) порівнює рядок s 1 з рядком s 2 і повертає результат типу int: 0 якщо рядки еквівалентні, > 0 - якщо s 1 s 2 З урахуванням регістра strncmp (s 1, s 2) порівнює n символів рядка s 1 з рядком s 2 і повертає результат типу int: 0 -якщо рядки еквівалентні, > 0 - якщо s 1 s 2 stricmp (s 1, s 2) порівнює рядок s 1 з рядком s 2 і повертає результат типу int: 0 якщо рядки еквівалентні, > 0 - якщо s 1 s 2 Без урахування регістру strnicmp (s 1, s 2) порівнює n символів рядка s 1 з рядком s 2 і повертає результат типу int: 0 -якщо рядки еквівалентні, > 0 - якщо s 1 s 2

Обробка символів isalnum (c) повертає значення true, якщо з є буквою або цифрою, і Обробка символів isalnum (c) повертає значення true, якщо з є буквою або цифрою, і false в інших випадках isalpha (c) повертає значення true, якщо з є буквою, і false в інших випадках isdigit (c) повертає значення true, якщо з є цифрою, і false в інших випадках islower (c) повертає значення true, якщо з є буквою нижнього регістра, і false в інших випадках isupper (c) повертає значення true, якщо з є буквою верхнього регістру, і false в інших випадках isspace (c) повертає значення true, якщо з є прогалиною, і false в інших випадках toupper (c) якщо символ с, є символом нижнього регістра, то функція повертає перетворений символ з у верхньому регістрі, інакше символ повертається без змін.

Функції пошуку strchr (s, c) пошук першого входження символу з в рядку s. У Функції пошуку strchr (s, c) пошук першого входження символу з в рядку s. У разі вдалого пошуку повертає вказівник на місце першого входження символу с. Якщо символ не знайдений, то повертається нуль. strcspn (s 1, s 2) визначає довжину початкового сегмента рядка s 1, що містить ті символи, які не входять в рядок s 2 strspn (s 1, s 2) повертає довжину початкового сегмента рядка s 1, який містить тільки ті символи, які входять в рядок s 2 strprbk (s 1, s 2) Повертає покажчик першого входження будь-якого символу рядка s 2 в рядку s 1

Функції перетворення atof (s 1) перетворить рядок s 1 в тип double atoi (s Функції перетворення atof (s 1) перетворить рядок s 1 в тип double atoi (s 1) перетворить рядок s 1 в тип int atol (s 1) перетворить рядок s 1 в тип long int

Тип даних string Крім роботи з рядками, як з масивом символів, в C ++ Тип даних string Крім роботи з рядками, як з масивом символів, в C ++ існує спеціальний тип даних string. Для введення змінних цього типу можна використовувати cin, або спеціальну функцію getline (cin, s); При описі змінної цього типу можна відразу присвоїти значення цієї змінної. string var (s); Тут var - ім'я змінної, s - строкова константа. У результаті цього оператора створюється змінна var типу string, і в неї записується значення строкової константи s. Наприклад, string v ( «Hello» ); Створюється рядок v, в яку записується значення Hello. Доступ до i-му елементу рядка s типу string здійснюється стандартним чином s [i]. Над рядками типу string визначені наступні операції: присвоювання, наприклад s 1 = s 2; об'єднання рядків (s 1 + = s 2 або s 1 = s 1 + s 2) - додає до рядка s 1 рядок s 2, результат зберігатися в рядку s 1 порівняння рядків на основі лексикографічного порядку: s 1 = s 2, s 1! = s 2, s 1 s 2, s 1 <= s 2, s 1> = s 2 - результатом буде логічне значення;

При обробці рядків типу string можна використовувати такі функції: s. substr (pos, length) - При обробці рядків типу string можна використовувати такі функції: s. substr (pos, length) - повертає підрядок з рядка s, починаючи з номера pos довгою length символів; s. empty () - повертає значення true, якщо рядок s порожня, false - в іншому випадку; s. insert (pos, s 1) - вставляє рядок s 1 у рядок s, починаючи з позиції pos; s. remove (pos, length) - видаляє з рядка s підрядок length довгою pos символів; s. find (s 1, pos) - повертає номер першого входження рядка s 1 у рядок s, пошук починається з номера pos, параметр pos може бути відсутнім, в цьому випадку пошук іде з початку рядка; s. findfirst (s 1, pos) - повертає номер першого входження будь -якого символу з рядка s 1 у рядок s, пошук починається з номера pos, який може бути відсутнім.

 • Вся справа в тому, що функція cin введення рядка до стрічного пробілу. • Вся справа в тому, що функція cin введення рядка до стрічного пробілу. Більш універсальною функцією є getline. • cin. getline (char * s, int n); • Функція призначена для введення з клавіатури рядка s з пробілами, в рядку не повинно бути більше n символів. Отже, для коректного введення рядків, що містять пробіл, необхідно в нашій програмі замінити cin >> s на cin. getline (s, 80).