//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; i++){
s1 = word [i];
s2 = word [i+1];
if (s1>s2)
return 0;
}
return 1;
}
int CharStr (char*str){//Определение характеристики строки
char s[maxlenStr];
strcpy(s, str);
char Razdel [] = " .,!?";
char* word = strtok(s, Razdel);
int len = strlen(word);
int maxlen = 0;
while (word){
if ((len > maxlen) && (GoodWord(word)))
maxlen= len;
word = strtok(NULL, Razdel);
len = strlen (word);
}
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;
}
Ly9WYXIgMjMKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bG9jYWxlPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0cmluZy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOyBjb25zdCBpbnQgbWF4blN0cj0xMDAsIG1heGxlblN0cj0xMDA7Cgpib29sIHJlYWRGaWxlKGNoYXIqZm5hbWUsIGNoYXIqKiBhLCBpbnQmIG4pIHsvL9Cn0YLQtdC90LjQtSDRhNCw0LnQu9CwCglpZnN0cmVhbSBmaW47CglmaW4ub3BlbihmbmFtZSk7CglpZiAoIWZpbikgcmV0dXJuIDA7CgljaGFyIHN0ciBbbWF4bGVuU3RyICsxXTsKICAgIGludCBsZW49MDsKICAgIHdoaWxlIChmaW4uZ2V0bGluZShzdHIsIG1heGxlblN0cisxKSl7CiAgICAgICAgbGVuID0gc3RybGVuIChzdHIpOwogICAgICAgIGFbbl09bmV3IGNoYXIgW2xlbisxXTsKICAgICAgICBzdHJjcHkoYVtuXSwgc3RyKTsKICAgICAgICBuKys7CiAgICB9CglmaW4uY2xvc2UoKTsKCXJldHVybiAxOwp9CmJvb2wgR29vZFdvcmQgKGNoYXIqd29yZCl7Ly/QntC/0YDQtdC00LXQu9C10L3QuNC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDRgdC70L7QstCwINGD0YHQu9C+0LLQuNGOCiAgICBpbnQgbGVuID0gc3RybGVuKHdvcmQpOwogICAgaW50IHMxPTAsIHMyPTA7CiAgICBmb3IgKGludCBpID0gMDsgaTxsZW47IGkrKyl7CiAgICAgICBzMSA9IHdvcmQgW2ldOwogICAgICAgczIgPSB3b3JkIFtpKzFdOwogICAgICAgaWYgKHMxPnMyKQogICAgICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIHJldHVybiAxOwp9CmludCBDaGFyU3RyIChjaGFyKnN0cil7Ly/QntC/0YDQtdC00LXQu9C10L3QuNC1INGF0LDRgNCw0LrRgtC10YDQuNGB0YLQuNC60Lgg0YHRgtGA0L7QutC4CiAgICBjaGFyIHNbbWF4bGVuU3RyXTsKICAgIHN0cmNweShzLCBzdHIpOwogICAgY2hhciBSYXpkZWwgW10gPSAiIC4sIT8iOwogICAgY2hhciogd29yZCA9IHN0cnRvayhzLCBSYXpkZWwpOwogICAgaW50IGxlbiA9IHN0cmxlbih3b3JkKTsKICAgIGludCBtYXhsZW4gPSAwOwogICAgd2hpbGUgKHdvcmQpewogICAgICAgIGlmICgobGVuID4gbWF4bGVuKSAmJiAoR29vZFdvcmQod29yZCkpKQogICAgICAgICAgICBtYXhsZW49IGxlbjsKICAgICAgICAgICAgd29yZCA9IHN0cnRvayhOVUxMLCBSYXpkZWwpOwogICAgICAgICAgICBsZW4gPSBzdHJsZW4gKHdvcmQpOwogICAgfQogICAgcmV0dXJuIG1heGxlbjsKfQpjaGFyKiBCZXN0U3RyKGNoYXIgKiphLCBpbnQgbil7Ly/QntC/0YDQtdC00LXQu9C10L3QuNC1INC80LDQutGB0LjQvNCw0LvRjNC90L7QuSDRgdGC0YDQvtC60LgsINC+0YLQstC10YfQsNGO0YnQtdC5INGD0YHQu9C+0LLQuNGOCiAgICBpbnQgaSwgaW1heD0wLCBoYXIsIG1heD0gQ2hhclN0cihhWzBdKTsKICAgIGZvciAoaT0xOyBpPG47IGkrKyl7CiAgICAgICAgaGFyPSBDaGFyU3RyKGFbaV0pOwogICAgICAgIGlmKGhhcj5tYXgpewogICAgICAgICAgICBtYXg9aGFyOwogICAgICAgICAgICBpbWF4ID0gaTsKICAgICAgICB9OwogICAgfTsKICAgIHJldHVybiBhW2ltYXhdOwp9CmludCBtYWluKCkgewoJc2V0bG9jYWxlKExDX0FMTCwgIiIpOwogICAgaW50IG49MDsKCWNoYXIgKmFbbWF4blN0cl07CiAgICBjaGFyIGZuYW1lWzEwXTsKCWNvdXQgPDwgItCY0LzRjyDRhNCw0LnQu9CwPyBcdCBcbiI7IGNpbiA+PiBmbmFtZTsKCWlmICghcmVhZEZpbGUoZm5hbWUsIGEsIG4pKSB7CgkJY291dCA8PCAi0J7RiNC40LHQutCwISDQndC10YIg0YTQsNC50LvQsCwg0LvQuNCx0L4g0L7QvSDQv9GD0YHRgi4g0J/QtdGA0LXQv9GA0L7QstC10YDRjNGC0LUg0YDQsNGB0L/QvtC70L7QttC10L3QuNC1LCDQuNC80Y8g0Lgg0YHQvtC00LXRgNC20LDQvdC40LUg0YTQsNC50LvQsC4gXG4iOwoJCXJldHVybiAwOwoJfQoKCglvZnN0cmVhbSBmb3V0OwoJZm91dC5vcGVuICgicmVzdWx0LnR4dCIpOwoJZm91dCA8PCBCZXN0U3RyKGEsIG4pOwoJZm91dC5jbG9zZSgpOwoJZm9yIChpbnQgaSA9MDsgaTxtYXhuU3RyOyBpKyspCiAgICAgICAgZGVsZXRlIFtdYVtpXTsKCXJldHVybiAwOwp9Cg==