//Var 23
#include <iostream>
#include <locale>
#include <fstream>
#include <string.h>
using namespace std; const int maxnStr=100, maxlenStr=100;
bool readFile(char*fname, char** a, int& n) {//Чтение файла
ifstream fin;
fin.open(fname);
if (!fin) return 0;
char str [maxlenStr +1];
int len=0;
while (fin.getline(str, maxlenStr+1)){
len = strlen (str);
a[n]=new char [len+1];
strcpy(a[n], str);
n++;
}
fin.close();
return 1;
}
bool GoodWord (char*word){//Определение соответствия слова условию
int len = strlen(word);
int s1=0, s2=0;
for (int i = 0; i<(len-1); i++){
if (s1>s2)
return 0;
}
return 1;
}
int CharStr (char*str){//Определение характеристики строки
unsigned int len = strlen(str), maxlen = 0;
char*str1 = new char[len + 1];
strcpy(str1, str);
char Separators[] = " ,.!?";
char*word = strtok(str1, Separators);
while (word){
if (GoodWord(word)) maxlen++;
word = strtok(0, Separators);
}
delete[]str1;
return maxlen;
}
char* BestStr(char **a, int n){//Определение максимальной строки, отвечающей условию
int i, imax=0, har, max= CharStr(a[0]);
for (i=1; i<n; i++){
har= CharStr(a[i]);
if(har>max){
max=har;
imax = i;
};
};
return a[imax];
}
int main() {
setlocale(LC_ALL, "");
int n=0;
char *a[maxnStr];
char fname[10];
cout << "Имя файла? \t \n"; cin >> fname;
if (!readFile(fname, a, n)) {
cout << "Ошибка! Нет файла, либо он пуст. Перепроверьте расположение, имя и содержание файла. \n";
return 0;
}
ofstream fout;
fout.open ("result.txt");
fout << BestStr(a, n);
fout.close();
for (int i =0; i<maxnStr; i++)
delete []a[i];
return 0;
}
Ly9WYXIgMjMKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bG9jYWxlPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0cmluZy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOyBjb25zdCBpbnQgbWF4blN0cj0xMDAsIG1heGxlblN0cj0xMDA7Cgpib29sIHJlYWRGaWxlKGNoYXIqZm5hbWUsIGNoYXIqKiBhLCBpbnQmIG4pIHsvL9Cn0YLQtdC90LjQtSDRhNCw0LnQu9CwCglpZnN0cmVhbSBmaW47CglmaW4ub3BlbihmbmFtZSk7CglpZiAoIWZpbikgcmV0dXJuIDA7CgljaGFyIHN0ciBbbWF4bGVuU3RyICsxXTsKICAgIGludCBsZW49MDsKICAgIHdoaWxlIChmaW4uZ2V0bGluZShzdHIsIG1heGxlblN0cisxKSl7CiAgICAgICAgbGVuID0gc3RybGVuIChzdHIpOwogICAgICAgIGFbbl09bmV3IGNoYXIgW2xlbisxXTsKICAgICAgICBzdHJjcHkoYVtuXSwgc3RyKTsKICAgICAgICBuKys7CiAgICB9CglmaW4uY2xvc2UoKTsKCXJldHVybiAxOwoKfQpib29sIEdvb2RXb3JkIChjaGFyKndvcmQpey8v0J7Qv9GA0LXQtNC10LvQtdC90LjQtSDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g0YHQu9C+0LLQsCDRg9GB0LvQvtCy0LjRjgogICAgaW50IGxlbiA9IHN0cmxlbih3b3JkKTsKICAgIGludCBzMT0wLCBzMj0wOwogICAgZm9yIChpbnQgaSA9IDA7IGk8KGxlbi0xKTsgaSsrKXsKICAgICAgIGlmIChzMT5zMikKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICByZXR1cm4gMTsKfQppbnQgQ2hhclN0ciAoY2hhcipzdHIpey8v0J7Qv9GA0LXQtNC10LvQtdC90LjQtSDRhdCw0YDQsNC60YLQtdGA0LjRgdGC0LjQutC4INGB0YLRgNC+0LrQuAogICAgdW5zaWduZWQgaW50IGxlbiA9IHN0cmxlbihzdHIpLCBtYXhsZW4gPSAwOwoJY2hhcipzdHIxID0gbmV3IGNoYXJbbGVuICsgMV07CglzdHJjcHkoc3RyMSwgc3RyKTsKCWNoYXIgU2VwYXJhdG9yc1tdID0gIiAsLiE/IjsKCWNoYXIqd29yZCA9IHN0cnRvayhzdHIxLCBTZXBhcmF0b3JzKTsKCXdoaWxlICh3b3JkKXsKCQlpZiAoR29vZFdvcmQod29yZCkpIG1heGxlbisrOwoJCXdvcmQgPSBzdHJ0b2soMCwgU2VwYXJhdG9ycyk7Cgl9CglkZWxldGVbXXN0cjE7CglyZXR1cm4gbWF4bGVuOwp9CmNoYXIqIEJlc3RTdHIoY2hhciAqKmEsIGludCBuKXsvL9Ce0L/RgNC10LTQtdC70LXQvdC40LUg0LzQsNC60YHQuNC80LDQu9GM0L3QvtC5INGB0YLRgNC+0LrQuCwg0L7RgtCy0LXRh9Cw0Y7RidC10Lkg0YPRgdC70L7QstC40Y4KICAgIGludCBpLCBpbWF4PTAsIGhhciwgbWF4PSBDaGFyU3RyKGFbMF0pOwogICAgZm9yIChpPTE7IGk8bjsgaSsrKXsKICAgICAgICBoYXI9IENoYXJTdHIoYVtpXSk7CiAgICAgICAgaWYoaGFyPm1heCl7CiAgICAgICAgICAgIG1heD1oYXI7CiAgICAgICAgICAgIGltYXggPSBpOwogICAgICAgIH07CiAgICB9OwogICAgcmV0dXJuIGFbaW1heF07Cn0KaW50IG1haW4oKSB7CglzZXRsb2NhbGUoTENfQUxMLCAiIik7CiAgICBpbnQgbj0wOwoJY2hhciAqYVttYXhuU3RyXTsKICAgIGNoYXIgZm5hbWVbMTBdOwoJY291dCA8PCAi0JjQvNGPINGE0LDQudC70LA/IFx0IFxuIjsgY2luID4+IGZuYW1lOwoJaWYgKCFyZWFkRmlsZShmbmFtZSwgYSwgbikpIHsKCQljb3V0IDw8ICLQntGI0LjQsdC60LAhINCd0LXRgiDRhNCw0LnQu9CwLCDQu9C40LHQviDQvtC9INC/0YPRgdGCLiDQn9C10YDQtdC/0YDQvtCy0LXRgNGM0YLQtSDRgNCw0YHQv9C+0LvQvtC20LXQvdC40LUsINC40LzRjyDQuCDRgdC+0LTQtdGA0LbQsNC90LjQtSDRhNCw0LnQu9CwLiBcbiI7CgkJcmV0dXJuIDA7Cgl9CgoKCW9mc3RyZWFtIGZvdXQ7Cglmb3V0Lm9wZW4gKCJyZXN1bHQudHh0Iik7Cglmb3V0IDw8IEJlc3RTdHIoYSwgbik7Cglmb3V0LmNsb3NlKCk7Cglmb3IgKGludCBpID0wOyBpPG1heG5TdHI7IGkrKykKICAgICAgICBkZWxldGUgW11hW2ldOwoJcmV0dXJuIDA7Cn0K