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