Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.
Код программы:
//--------------------------------------------------------------------------- #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 и заполняем его необходимым содержанием.
Результат работы программы: