Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте.
Код программы:
//---------------------------------------------------------------------------- #include <fstream.h> #include <string.h> #include<iostream.h> #include <ctype.h> #include<windows.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("Ошибка открытия файла!"); getch(); return 1; } fin.seekg(0,ios::end); long len=fin.tellg(); char *maxword=new char[len+1]; char *word=new char[len+1]; char *buf=new char[len+1]; fin.seekg(0,ios::beg); fin.read(buf,len); buf[len]='\0'; int i=0,j=0,k=0,l=0,wordlen=0,maxwordlen=0,wordcnt=0; //--------------------------------------------------------------------------- while(buf[i]) { if(isalpha(buf[i])) { while(!(ispunct(buf[i])||isspace(buf[i])||(buf[i]=='\0'))) { word[j++]=buf[i++]; } word[j]='\0'; j=0; wordlen=strlen(word); cout<<word/*<<'('<<wordlen<<')'*/; if(wordlen>maxwordlen) { maxwordlen=wordlen; strcpy(maxword,word); } k=l=wordcnt=0; while(buf[k]) { if(isalpha(buf[k])) { while(!(ispunct(buf[k])||isspace(buf[k])||(buf[k]=='\0'))) { word[l++]=buf[k++]; } word[l]='\0'; l=0; if(strcmp(maxword,word)==0)wordcnt++; } k++; } } cout<<buf[i]; i++; } fin.close(); cout<<rus("\n\nСамое длинное слово: ")<<maxword; cout<<rus("\nДлина слова ")<<maxwordlen;cout<<rus(" байт"); cout<<rus("\nКоличество вхождений слова: ")<<wordcnt; getch(); return 0; } //---------------------------------------------------------------------------- char bufrus[256]; char *rus(const char *text) { CharToOem(text, bufrus); return bufrus; } //---------------------------------------------------------------------------
Создаем текстовый файл в папке с проектом с именем text.txt и заполняем его необходимым содержанием.
Результат работы программы: