Вариант 9

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

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

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<windows.h>
#include<fstream.h>
#include<vcl.h>
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
char *rus(const char *text);
int main(int argc, char* argv[])
{
 ifstream fin("text.txt");
 if(!fin)
  {
   cout<<rus("Ошибка открытия файла.")<<endl;
   getch();
   return 1;
  }
 fin.seekg(0,ios::end);
 long len=fin.tellg();
 char *buf=new char[len+1];
 char *buffer=new char[len+1];
 fin.seekg(0,ios::beg);
 fin.read(buf,len);
 buf[len]='\0';
 long n=0,i=0,j=0,m=0,cnt=0,kol,num=0;
 cout<<rus("Введите количество слов в предложении: ");cin>>kol;
 cout<<endl;
//--------------------------------------------------------------------------
 while(buf[i])
  {
   if(buf[i]=='.'||buf[i]=='?'||buf[i]=='!')
    {
     for(j=n,m=0;j<=i;j++,m++)
     buffer[m]=buf[j];
     buffer[m]='\0'; 
     int jpos=j;
     for(int k=0;k<jpos;k++)
      {
       if(isalpha(buffer[k]))
        {
         if(isspace(buffer[k+1])||ispunct(buffer[k+1])||isdigit(buffer[k+1]))
         cnt++;
        }
      }
     if(kol==cnt)
      {
       cout<<buffer;
       num++;
      }
     cnt=0;
     n=i+1;
    }
   i++;
  }
 if(0==num)cout<<rus("Таких предложений нет!");
 fin.close();
 getch();
 return 0;
}
//---------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text, bufrus);
  return bufrus;
 }
//--------------------------------------------------------------------------- 

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

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

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

Вариант 8
Вариант 10
error: Content is protected !!
Adblock
detector