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. bool GoodWord (char*word){//Определение соответствия слова условию
  24. int len = strlen(word);
  25. int s1=0, s2=0;
  26. for (int i = 0; i<len; i++){
  27. s1 = word [i];
  28. s2 = word [i+1];
  29. if (s1>s2)
  30. return 0;
  31. }
  32. return 1;
  33. }
  34. int CharStr (char*str){//Определение характеристики строки
  35. char s[maxlenStr];
  36. strcpy(s, str);
  37. char Razdel [] = " .,!?";
  38. char* word = strtok(s, Razdel);
  39. int len = strlen(word);
  40. int maxlen = 0;
  41. while (word){
  42. if ((len > maxlen) && (GoodWord(word)))
  43. maxlen= len;
  44. word = strtok(NULL, Razdel);
  45. len = strlen (word);
  46. }
  47. return maxlen;
  48. }
  49. char* BestStr(char **a, int n){//Определение максимальной строки, отвечающей условию
  50. int i, imax=0, har, max= CharStr(a[0]);
  51. for (i=1; i<n; i++){
  52. har= CharStr(a[i]);
  53. if(har>max){
  54. max=har;
  55. imax = i;
  56. };
  57. };
  58. return a[imax];
  59. }
  60. int main() {
  61. setlocale(LC_ALL, "");
  62. int n=0;
  63. char *a[maxnStr];
  64. char fname[10];
  65. cout << "Имя файла? \t \n"; cin >> fname;
  66. if (!readFile(fname, a, n)) {
  67. cout << "Ошибка! Нет файла, либо он пуст. Перепроверьте расположение, имя и содержание файла. \n";
  68. return 0;
  69. }
  70.  
  71.  
  72. ofstream fout;
  73. fout.open ("result.txt");
  74. fout << BestStr(a, n);
  75. fout.close();
  76. for (int i =0; i<maxnStr; i++)
  77. delete []a[i];
  78. return 0;
  79. }
  80.  
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
Имя файла? 	 
Ошибка! Нет файла, либо он пуст. Перепроверьте расположение, имя и содержание файла.