fork download
  1. //Var 23
  2. #include <iostream>
  3. #include <locale>
  4. #include <fstream>
  5. #include <string.h>
  6. using namespace std; const int maxnStr=100, maxlenStr=100;
  7.  
  8. bool readFile(char*fname, char** a, int& n) {//Чтение файла
  9. ifstream fin;
  10. fin.open(fname);
  11. if (!fin) return 0;
  12. char str [maxlenStr +1];
  13. int len=0;
  14. while (fin.getline(str, maxlenStr+1)){
  15. len = strlen (str);
  16. a[n]=new char [len+1];
  17. strcpy(a[n], str);
  18. n++;
  19. }
  20. fin.close();
  21. return 1;
  22.  
  23. }
  24. bool GoodWord (char*word){//Определение соответствия слова условию
  25. int len = strlen(word);
  26. int s1=0, s2=0;
  27. for (int i = 0; i<(len-1); i++){
  28. if (s1>s2)
  29. return 0;
  30. }
  31. return 1;
  32. }
  33. int CharStr (char*str){//Определение характеристики строки
  34. unsigned int len = strlen(str), maxlen = 0;
  35. char*str1 = new char[len + 1];
  36. strcpy(str1, str);
  37. char Separators[] = " ,.!?";
  38. char*word = strtok(str1, Separators);
  39. while (word){
  40. if (GoodWord(word)) maxlen++;
  41. word = strtok(0, Separators);
  42. }
  43. delete[]str1;
  44. return maxlen;
  45. }
  46. char* BestStr(char **a, int n){//Определение максимальной строки, отвечающей условию
  47. int i, imax=0, har, max= CharStr(a[0]);
  48. for (i=1; i<n; i++){
  49. har= CharStr(a[i]);
  50. if(har>max){
  51. max=har;
  52. imax = i;
  53. };
  54. };
  55. return a[imax];
  56. }
  57. int main() {
  58. setlocale(LC_ALL, "");
  59. int n=0;
  60. char *a[maxnStr];
  61. char fname[10];
  62. cout << "Имя файла? \t \n"; cin >> fname;
  63. if (!readFile(fname, a, n)) {
  64. cout << "Ошибка! Нет файла, либо он пуст. Перепроверьте расположение, имя и содержание файла. \n";
  65. return 0;
  66. }
  67.  
  68.  
  69. ofstream fout;
  70. fout.open ("result.txt");
  71. fout << BestStr(a, n);
  72. fout.close();
  73. for (int i =0; i<maxnStr; i++)
  74. delete []a[i];
  75. return 0;
  76. }
  77.  
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
Имя файла? 	 
Ошибка! Нет файла, либо он пуст. Перепроверьте расположение, имя и содержание файла.