Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. // Разработать объектно-ориентированную программу поиска самого длинного слова в любом заданном текстовом файле. При этом под словом понимается любая последовательность символов, которая состоит из букв и (или) цифр. Имя файла должно передаваться программе через аргумент командной строки ее вызова. Если в заданном файле имеется несколько различных слов равной максимальной длины, то программа должна перечислять все такие слова. Все найденные слова и число повторений каждого из них должны отображаться через поток стандартного вывода (сout). При разработке программы следует использовать методы форматного ввода файловых потоков.
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. #include <cstring>
  6. using namespace std;
  7. class A
  8. {
  9. public:
  10. string word;
  11. int l;
  12. int c=1;
  13. };
  14. int main(int argc, char* argv[])
  15. {
  16. char* word;
  17. string s;
  18. A w[15];
  19. int i=0,j=0,c,max=-1;
  20.  
  21. ifstream file(argv[1]);
  22. if(file == 0) {
  23. cerr << argv[1] << ": Can't open to read" << endl;
  24. return(-1);
  25. }
  26.  
  27. // Считка слов из файла, нахождение длины и максимума
  28.  
  29. for(file >> s; !file.eof(); file >> s)
  30. {
  31. w[i].word=s;
  32. w[i].l=s.size();
  33. if (w[i].l>max)
  34. max=w[i].l;
  35. i++;
  36. }
  37.  
  38. //Нахождение всех максимальных и их количество
  39. c=i;
  40. for (i=0;i < (c-1);i++)
  41. {
  42. //cout<<w[i].word<<" leng: "<<w[i].l<<endl;
  43.  
  44. if (w[i].l==max)
  45. {
  46. for(j=i+1;j<=c;j++)
  47. {
  48. if (w[j].l==max)
  49. if ((strcmp(w[i].word.c_str(),w[j].word.c_str()))==0)
  50. {
  51. //cout<<endl<<w[i].word<<" and "<<w[j].word<< " same\n";
  52. w[i].c++;
  53. w[j].l=-1;
  54. }
  55. }
  56. cout<<w[i].word<<" количество: "<<w[i].c<<endl;
  57. }
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement