Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Разработать объектно-ориентированную программу поиска самого длинного слова в любом заданном текстовом файле. При этом под словом понимается любая последовательность символов, которая состоит из букв и (или) цифр. Имя файла должно передаваться программе через аргумент командной строки ее вызова. Если в заданном файле имеется несколько различных слов равной максимальной длины, то программа должна перечислять все такие слова. Все найденные слова и число повторений каждого из них должны отображаться через поток стандартного вывода (сout). При разработке программы следует использовать методы форматного ввода файловых потоков.
- #include <iostream>
- #include <fstream>
- #include <cstring>
- using namespace std;
- class A
- {
- public:
- string word;
- int l;
- int c=1;
- };
- int main(int argc, char* argv[])
- {
- char* word;
- string s;
- A w[15];
- int i=0,j=0,c,max=-1;
- ifstream file(argv[1]);
- if(file == 0) {
- cerr << argv[1] << ": Can't open to read" << endl;
- return(-1);
- }
- // Считка слов из файла, нахождение длины и максимума
- for(file >> s; !file.eof(); file >> s)
- {
- w[i].word=s;
- w[i].l=s.size();
- if (w[i].l>max)
- max=w[i].l;
- i++;
- }
- //Нахождение всех максимальных и их количество
- c=i;
- for (i=0;i < (c-1);i++)
- {
- //cout<<w[i].word<<" leng: "<<w[i].l<<endl;
- if (w[i].l==max)
- {
- for(j=i+1;j<=c;j++)
- {
- if (w[j].l==max)
- if ((strcmp(w[i].word.c_str(),w[j].word.c_str()))==0)
- {
- //cout<<endl<<w[i].word<<" and "<<w[j].word<< " same\n";
- w[i].c++;
- w[j].l=-1;
- }
- }
- cout<<w[i].word<<" количество: "<<w[i].c<<endl;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement