Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ПРИКЛАД : Пошук слова у фразі.




Практична робота №

ТЕМА :Робота з рядками в С++.

ХІД   ВИКОНАННЯ  РОБИТИ

  1. Створити наступні рядки

char r1[]= "tehnikum”,

 r2[30]="Кuivskuy",

 r3[30] = “”,

 r4[4] = {'a','b','c','\0'};

  1. Вивести на екран рядок r1.

cout<<”Ryadok r1 = ”<< r1 <<'\n';

  1. Вивести на екран рядок r4.
  2. Підрахувати і вивести на екран кількість символів рядка  r1.

int k=strlen(r1) ; cout<< " kil = "<< k <<'\n';

  1. Самостійно підрахувати і вивести на екран кількість символів рядка r2.
  2. Скопіювати рядок r1 в рядок r3 .Вивести рядок r1 та r3

strcpy(r3,r1);

cout<<"Fraza r1="<<r1<< " "<<"Fraza r3="<< r3 <<'\n';

  1. Самостійно скопіювати рядок r2 в рядок r3 .Вивести рядки r3 та r1
  2. Заданий рядок str1 [ ], скопіювати в символьний масив , використовуя цикл

 

char str1 [ ] = "1234567890"; // оголошуємо символьний масив str1 іініціалізуємо його

str2[11]; // оголошуємо символьний масив без ініціалізації

/* у циклі поки не зустрінеться кінець рядка привласнюємо поточному елементу масиву str2 символ з масиву str1 */

for(int i = 0; str1[i]!= '\0'; i++) str2[i]= str1[i];

str2 [i] = '\0';        //копіюємо нуль-символ в str2.

cout << str2 << '\n';  // вивод рядка на екран

  1. Ввести слово з клавіатури у символьний масивstr

char str[10];          // оголошення символьного масиву(слова)

cout<<"Enter а string (max 10 symbols):";

cin>>str; // введення рядка

cout<<"\nYou enter string:"<<str; // виведення рядка

  1. УВАГА! Команда cin » зчитає дані лише до першого пропуску. Щоб зчитати весь рядок до символу вводу, необхідно застосувати команду одну із наступних команд

 cin.get(<Haзвa рядка>, максимальна довжина рядка>); або

 cin.get(<Haзвa рядка>, максимальна довжина рядка>).get();або

    cin.getline(<Haзвa рядка>, максимальна довжина рядка>);

ПРИКЛАД. Ввести речення з клавіатури у символьний масивstr1

char str1[20]; // оголошення символьного масиву(слова)

cout<<"Enter а string (max 20 symbols):";

cin.get(str,20);// введення рядка

cout<<"\nYou enter string:"<<str1; // виведення рядка

cout<<"\n";

ПРИКЛАД. Самостійно ввести речення з клавіатури у символьні масиви  str1 та str2 ,застосовуючі наступні команди даного пункту. Вивести їх на екран.


11. ПРИКЛАД:За допомогою вказівника типу char і виділення динамічної пам яті , увести рядок символів та визначити його довжину.

void main(){

char* s;                 // Оголошуємо вказівник на рядок

 s = new char [30];  // Виділяємо пам'ять для введення рядка

 cin.get(s,30) ;  //Вводимо рядок з клавіатури

 int d=0;

while (*s++)d++;

cout << "d=" << d<< '\n';

ПРИМІТКА:перевірку зробити , використовуя функцію strlen().

 




ПРИКЛАД : Пошук слова у фразі.

а)Перший спосіб: Нехай задано рядок "My summer holiday". Визначити довжину рядка. Вивести на екран друге слово цього рядка.

void main(){

char r1[] = "My summer holiday";

char *p;

p = strchr(r1,' '); // Встановлюємо вказівник р на перший пропуск у рядку r1

cout <<p << '\n';

strtok (p," ");

cout <<p << '\n'; //3 рядка р вилучаємо всі символи після його першого пропуску

 

б)Другий спосіб розв'язання даної задачі , в якому ря­док розглядається якмасив символів і функції для роботи зрядками не використовуються.

void main(){

char r1[] = "My summer holiday";

char *p;

int n1, n2, k, m ,i;

m = 0;

k = strlen(r1);

cout <<"Long r1 = " << k << '\n';

cout <<r1[1];

for( i=0 ; i<k ; i++)

if(r1[i]==' ')

{ m++;

    if (m == 1) n1 = i;  

    if (m == 2) n2 = i; 

}

cout <<"n1 = " << n1 <<"n2 = " << n2 <<'\n';

for (i=n1+1 ; i< n2 ; i++)

cout << r1[i];

cout<< '\n';

//getch();

  1. }

 

 

ІНДИВІДУАЛЬНЕ ЗАВДАННЯ

 

1. Створити рядок  , який об’єднує три різних рядка. Наприклад: перший рядок – технікум . другий – електронних, третій – приладів .

2. У заданому реченні знайти найкоротше і щонайдовше слова. Вивести все на екран

3. Відредагувати рядок , видаляючи з нього зайві пропуски, залишаючи тільки по одному пропуску між словами.

4. Для кожного символу заданого тексту вказати, скільки разів він зустрічається в тексті. Речення про один символ повинне друкуватися не більш один раз.

5. Знайти щонайдовше симетричне слово заданої , наприклад АККА.

6. Визначити, які розділові знаки («.»; «!»; «?»; «,"; «–»; «:») не входять в даний текст.

7. Даний текст S, в якому є хоча б одна речення. Вивести ту речення тексту, яка речення до першої речення.

8. Перерахувати к-ть голосних літер в n–ом слові, узятому із списку слів. Розмір списку 20 слів. Максимальна довжина слова 16 літер.

9. Із заданого тексту речення вибрати і надрукувати тільки ті символи, які зустрічаються в ньому тільки один раз (у тому порядку, в якому вони зустрічаються в тексті).

10. Дано деякий текст, в якому є хоча б одна кома. Визначити порядковий номер першої коми в тексті.

11. У заданій речення поміняти місцями перше і останнє слова.

12. У даному тексті обчислити найбільшу кількість пропусків, які розташовані підряд.

13.  Дані натуральне число n, символи s1,…,sn. Перетворити послідовність s1,…,sn, замінивши в ній всі знаки оклику крапками

14. Написати програму, яка замінює перше і останнє слова в даній пропозиції даним словом.

15. Даний текст S, в якому є хоча б одна крапка. Вивести ту частину тексту, яка розташована після другої крапки

16. Даний рядок символів, підрахувати скільки разів серед символів рядка зустрічається буква x.

 

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

Зауваження до задачі. Як Ви думаєте, що відбудеться, якщо в програму ввести рядок , який містить пропуски (тобто порушити умови задачі)? Як Ви можете пояснити одержане?

18.  Написати програму порівняння двох рядків










Последнее изменение этой страницы: 2018-05-31; просмотров: 133.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...