Вариант 19

Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные.

Код программы:

//---------------------------------------------------------------------------
#include<iostream.h>
#include<windows.h>
#include<fstream.h>
#include<conio.h>
#include<ctype.h>
#include<vcl.h>
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
char *rus(const char *text); //функция для распознавания русских символов
int main()
 {
  ifstream fin("text.txt"); //открываем файл для чтения
  if(!fin)                      //если файла нет
   {
    cout<<rus("Файл text не существует!")<<endl; //выводим сообщение
    getch();
    return 1;
   }
  fin.seekg(0,ios::end);//определяем длину файла, перемещаемся на его конец
  long len=fin.tellg(); //получаем длину файла и заносим в переменную len
  char *buffer=new char[len+1];//выделяем len+1 байтов для хранения предложения
  char *buf=new char[len+1];//выделяем len+1 байтов для хранения текста из файла
  fin.seekg(0,ios::beg); //переносимся опять на начало файла для чтения
  fin.read(buf,len);      //проводим чтение из файла
  buf[len]='\0';          //заносим 0-ой символ в конец файла
  long i=0,j=0;           //объявление переменных для работы с текстом
//---------------------------------------------------------------------------
  while(buf[i])           //просмотр файла
   {
    if(isupper(buf[i])&&(ispunct(buf[i+1])||buf[i+1]==' '))
     {  //если встретилась 1 заглавная буква и знак пунктуации после нее
      while(((buf[i])!='.')||((buf[i])!='?')||((buf[i])!='!'))
       {
        cout<<buf[i];       //вывод текста
        if(((buf[i])=='.')||((buf[i])=='?')||((buf[i])=='!'))//если встретились 
         {                                                 // эти символы
          cout<<endl;
          break;                           //прекращаем чтение
         }
        i++;
       }
     }
    else
     {                 //если нет заглавной буквы
      buffer[j++]=buf[i];   //заносим текст в buffer
     }
    i++;
   }
  fin.close();
  buffer[j]='\0';
  cout<<buffer; //выводим все остальные предложения
  getch();
  return 0;
 }
//----------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text,bufrus);
  return bufrus;
 }
//----------------------------------------------------------------------------

Создаем текстовый файл в папке с проектом с именем text.txt и заполняем его необходимым содержанием.

Результат работы программы:

Результат работы. Девятнадцатый вариант. Строки и файлы

Вариант 18
Вариант 20
error: Content is protected !!
Adblock
detector