МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Лекція 11, 12Тема : Рядкові дані. Функції обробки даних. Мета: Вивчення та закріплення знанб на базі рішення задач з рядковими даними. Придбання навичок по розробці програм з рядковими даними. Рядки в с + + дозволяють нам працювати з символьними даними. Завдяки ним ми можемо читати з клавіатури текст , якось його обробляти і потім , наприклад , знову його виводити в консоль. У С + + існує 2 типу рядків . Перший з них - це масив змінних типу char . Якщо хто не пам'ятає , то змінна типу char зберігає в собі 1 символ . Розмір такого рядка дорівнює розміру масиву - 1, тому останній елемент містить NULL (порожній мінлива без значення ) , який позначає символ кінця рядка. наприклад: char name [50] ; cin >> name ; cout << " Hello " << name << endl ; Другий з варіантів , більш зручний - це спеціальний клас string Для його роботи необхідно на початку програми підключити заголовний файл string : # include <string> У відмінності від типу char , string є класом . Більш докладно про класах я розповім пізніше , зараз вам досить знати , що класи містять у собі відразу кілька речей: змінні , константи та функції для роботи із змінними. Це досить грубе пояснення , але на перший час вам вистачить. Для створення рядка вам необхідно на початку програми написати using namespace std ; Тепер щоб створити рядок досить написати: string s ; Для запису в рядок можна використовувати оператор = s = " Hello " ; Приклад роботи з класом string : string name ; cout << " Enter your name " << endl ; cin >> name ; cout << " Hi " << s << " ! " << endl ; Але поки ви скористалися тільки однієї принадністю рядків : відсутністю необхідності задавати її розмір. Але крім цього існує безліч функцій для роботи з рядками . s.append ( str ) - додає в кінець рядка рядок str . Можна писати як s.append (змінна ) , так і s.append ( "рядок " ) ; s.assign ( str ) - присвоює рядку s значення рядка str . Аналогічно запису s = str ; int i = s.begin ( ) - записує в i індекс першого елемента рядки int i = s.end ( ) - аналогічно , але останнього s.clear ( ) - як випливає з назви , відчищає рядок. Тобто видаляє всі елементи в ній s.compare ( str ) - порівнює рядок s з рядком str і повертає 0 у випадку збіг (насправді порівнює коди символів і повертає з різницю) s.copy (куди , скільки , починаючи з якого) - копіює з рядка s в куди ( там може бути як рядок типу стринг , так і рядок типу char ) . Останні 2 параметри необов'язкові (можна використовувати функцію з 1,2 або 3 параметрами ) bool b = s.empty ( ) - якщо рядок порожній , повертає true , інакше false s.erase (звідки , скільки) видаляє n елементів із заданою позиції s.find ( str , позиція ) - шукає рядок str починаючи з заданої позиції s.insert ( позиція , str , починаючи , beg , count ) - вставляє в рядок s починаючи з заданої позиції частина рядка str починаючи з позиції beg і вставляючи count символів int len= s.length ( ) - записує в len длинну рядка s.push_back ( symbol ) - додає в кінець рядка символ s.replace ( index , n , str ) - бере n перших символів з str і замінює символи рядка s на них , починаючи з позиції index str = s.substr ( n , m ) - повертає m символів починаючи з позиції n s.swap ( str ) змінює вміст s і str місцями. s.size ( ) - повертає число елементів в рядку. Ось власне більшість необхідних функція для роботи з рядками в с + +. Набір досить непоганий , більше вам поки не знадобиться Тепер трохи прикладів і потім практика . Постарайтеся самі зрозуміти , що робить кожен приклад. string name , surname , text , fullname , s1 , s2 , s3 , user ; user = " Petya Petrov " ; cout << " Enter your name " << endl ; cin >> name ; cout << " Enter your surname " << endl ; cin >> surname ; fullname = name ; fullname + = "" ; / / додаємо пробіл fullname.append ( surname ) ; if ( fullname.compare ( user ) == 0) / / < => if (! ( fullname.compare ( user ))) cout << " Your are good user " << endl ; else cout << " Bad user " << endl ; cout << " enter s1 " << endl ; cin >> s1 ; cout << " enter s2 " << endl ; cin >> s2 ; s1.swap ( s2 ) ; cout < " new s1 : " << s1 << endl << " new s2 : " << s2 << endl ; cout << " Enter big text with your name " << endl ; cin >> text ; int i = 0 ; i = text.find ( " name " ) ; while ( i! = -1 ) {text.replace ( i , name.length ( ) , name ) ; s3 = text.substr ( i , name.length ( )) ; cout << " Replaced : " << s3 << endl ; i = text.find ( " name " ) ; }cout << " New text : " << endl << text << endl ; text.clear (); cout << " text : " << text << endl ; Задачі для рядків типу char : Підрахувати кількість символів з рядку (рядок кінчається елементом 0 : c = 0 if ( c == 0) cout << " end " << endl ; Вам вводять рядок , потім вводять підрядок . Якщо підрядок є в введеної рядку вивести так, інакше немає Вводять 3 рядки: а, б , с. Замінити у рядку з рядок а на рядок б Задачі для рядків типу string : Вводять текст і вводять підрядок , знайти всі входження підрядок в текст Вводять текст і два слова , замінити всі слова 1 на слова 2 і всі слова 2 на слова 1 Вводимо ім'я і текст , вивести всі входження імені в текст ( ім'я + 5 символів до і 5 символів після нього) Вводять 2 тексту. Порівняти їх , об'єднати , вивести всі прогалини , крапки, коми , двокрапки . Потім вивести розмір кожного тексту і загальний розмір . Потім поміняти всі букви а на a (росіяни на латинські ) і до на k . Потім вивести кількість замін. Читайте також:
|
||||||||
|