Практическое занятие № 5

ТЕМА: Создание программ для обработки текстовых данных в С++

ЦЕЛЬ РАБОТЫ: получить практические навыки по описанию и обработке текстовой информации в программах на С++

 

Ход работы

1. Организуйте ввод произвольного текста с клавиатуры;

2. Выведите исходный текст в обратном порядке;

3. Определить, сколько слов в тексте начинается на заданную букву (букву ввести с клавиатуры);

4. Вывести на экран заданное количество первых и последних символов текста (количество символов вводится с клавиатуры);

5. Из слов "Доброе" и  "утро" получить фразу "Доброе утро"

Выполнение работы

//подключаем заголовочные файлы

#include <iostream.h>

#include <string.h>

int main()

{

      //подключаем русский язык

      system("chcp 1251>nul");

 

      //описываем строку str

      //и буферную строку buf

      char str[80], buf[80], ch;

      int i,j,kol;

     

      //вводим исходный текст

      cout<<"Введите текст:";

      cin.getline(str,80);

 

      //записываем текст в обратном порядке

      //копируем исходный текст в переменную buf

      strcpy(buf,str);

      //выдаем переменную buf в обратном порядке

      cout<<"Текст в обратном порядке: "<<strrev(buf)<<"\n";

 

      //определяем число слов на заданную букву

      //записываем в buf пробел

      strcpy(buf," ");

      //к строке buf добавляем строку str

      strcat(buf,str);

      //вводим букву для поиска

      cout<<"Введите букву для поиска в тексте: ";

      cin>>ch;

      //организуем цикл для поиска слов

      for (kol=0,i=0;i<=strlen(buf)-2;i++)

          //если первый символ пробел, а второй заданная буква

          if(buf[i]==' ' && buf[i+1]==ch)

              //количество слов увеличивается на 1

              kol++;

      //выдаем найденное количество на экран

      cout<<"Количество слов на букву "<<ch<<" равно "<<kol<<"\n";

 

      //выводим на экран заданное число символов

      //вводим нужное число символов

      cout<<"Введите нужное число символов: ";

      cin>>kol;

      //выводим первые символы текста

      //организуем цикл от первого символа

      //до заданного числа

      for (i=0;i<=kol-1;i++)

          //выдаем текущий символ и курсор оставляем в строке

          cout<<str[i];

      //переходим на новую строку

      cout<<"\n";

 

      //выводим последние символы текста

      //организуем цикл от заданного количества

      //и до последнего символа

       for (i=strlen(str)-kol;i<=strlen(str)-1;i++)

          //выдаем текущий символ и курсор оставляем в строке

          cout<<str[i];

      //переходим на новую строку

      cout<<"\n";

 

      //строим первую фразу

      //задаем первое слово в переменной str

      strcpy(str,"Доброе");

      //добавляем к тексту пробел

      strcat(str," ");

      //добавляем к тексту второе слово

      strcat(str,"утро");

      //выдаем полученный текст

      cout<<str<<"\n";

 

      system("pause");

      return 0;

}

 

Решить самостоятельно:

 

1. Дана строка. Подсчитать, сколько в ней букв г, к, т.

 

2. Дана строка символов, среди которых есть двоеточие (:). Определить, сколько символов ему предшествует.

 

3. Дана строка. Определить, сколько раз входит в нее группа букв про.

 

4. Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке.

 

5. В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен.

 

6. В строке удалить символ «двоеточие» (:) и подсчитать количество удаленных символов.

 

7. В строке между словами вставить вместо пробела запятую и пробел.

 

8. В строке имеется одна точка с запятой (;). Подсчитать количество символов до точки с запятой и после нее.

 

9. Строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом).