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