Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
31.01.2021
Размер:
13.87 Кб
Скачать

Інформатика — Практика — Робота з рядками    Автори

|

Контакти

|

Підсистема допомоги

|

Методичні вказівки

|

Анотація

|

Назад

   ІнформатикаОбробка символьних даних : Робота з рядкамиЗміст курсу

Вступ

Теорія

Вбудований тип char

Рядки, як символьні масиви

Функції введення-виведення символьних даних

Основні функції обробки символьних даних

Практика

Робота з рядками

Лабораторна робота

Поточна перевірка знань

Символьні дані

Версія для друку

  Робота з рядками Практичне заняття Розібрати приклади.

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

#include <string.h>

#include <iostream.h>

void main ()

{

     char *tk, *spt =" , .";

     char st[ ] = "Зроби велике,не обіцяй великого.";

     cout << st << endl;

     int i = 1;

     tk = strtok (st, spt);

     while (tk != NULL)

     {

          cout << i << " слово - " << tk << " - " << strlen(tk) << " символiв" <<endl;

          tk = strtok(NULL, spt); і++;

     }

     cin » і;          //затримка экрана

)

Результати виконання програми:

Зроби велике, не обіцяй великого.

слово - Зроби - 5 символів

слово - великое - 6 символів

слово - не - 2 символів

слово - обіцяй - 6 символів

слово - великого - 8 символів

Приклад 2. Скласти програму вилучення підрядка в n символів з k-ої позиції в рядку..

#include <iostream.h>

#include <string.h>

#include <conio.h>

          // функція вилучення підстроки із рядка

void del (char*sp, int k, int n)

{

     int і;

     for (i = k; і < strlen(sp); і++)

          sp[i] = sp[i+n];

     sp[i] =' \0';

}void main()     

{

     char st[50], pst[10];

     cout << "***** Введіть рядок\п";

     cin.getline(st, 50);

     cout << "***** Введіть підстроку\п";

     cin >> pst;

     cout << "Рядок: - "<< st << endl;

     del (st, strstr(st, pst)-st, strlen(pst));

     cout << "Новий рядок: - "<<st<< endl;

     getсh();

}

Результати обчислень:

***** Введіть рядок Люблю писати програми мовою С++!

***** Введіть подстроку писати

Рядок: - Люблю писати програми мовою C++I

Новий рядок: ~- Люблю програми мовою С++!

Приклад 3. Ввести список прізвищ (рядків) і відсортувати його за алфавитом.

#include <iostream.h>

#include <string.h>

void main( )

{

     char mst[ 5] [15];

     char *ps[5], *ptr;

     int і, n, k;

     cout << "Введіть прізвища \n";

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

     {

          gets (mst [i] );

          ps[i] = mst[i];

     }

     cout << "\n\t Вихідний список\n\n";

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

          puts ( ps[ i ] );

           // Сортування масиву

     n = 5;

     for (i = 1; i < n; i++) // кількість переглядів

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

          if ( strcmp ( ps[k], ps[k+1] ) > 0)

          {

               ptr = ps[k];

               ps[k] = ps[k+1];

               ps[k+1] = ptr;

          }

     cout << "\n\n\t Відсортований список \n\n";

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

          puts ( ps[ i ] );

}

Приклад 4. Ввести рядок і видалити в ньому зайві проміжки.

#include <iostream.h>

#include <string.h>

void main()

{

     char st[] = "Прийшла весна в мої краї.";

     int i, n = 0;

     for (i = 0; i < strlen(st); i++)

     {

          if (st[i] != ' ')

          {

               cout << st[i];

               n=0;

          }

          else

               n++;

          if(n == 1) cout << st[i];

     }

     return 0;

}

 © 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS

Соседние файлы в папке content