1-1 Программирование С++ / html / modules / 018 / content / example1
.htmlІнформатика — Практика — Робота з рядками Автори
|
Контакти
|
Підсистема допомоги
|
Методичні вказівки
|
Анотація
|
Назад
ІнформатикаОбробка символьних даних : Робота з рядкамиЗміст курсу
Вступ
Теорія
Вбудований тип 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