#include <iostream>
#include <cctype>
const char* max_word(const char* s, const char*& e, int& n){
int k, l, i;
const char* p, *m, *t = s;
m = NULL;
i = 1;
for(n = k = 0; *s; ++s){
if(std::isalpha(*s) && ! std::isalpha(*(s + 1))){
p = s - 1;
while((p >= t) && std::isalpha(*p))
--p;
++p;
l = (int)(s - p);
if(l > k){
k = l;
n = i;
m = p;
e = s + 1;
}
++i;
}
}
return m;
}
int main(void){
char s[] = "begin: saturn, [jupiter], neptun, uran.";
int n;
const char* e;
const char* w = max_word(s, e, n);
if(w != NULL){
std::cout << "word: ";
std::cout.write(w, (int)(e - w));
std::cout << std::endl;
std::cout << "index: " << (size_t)(w - s) << std::endl;
std::cout << "number: " << n << std::endl;
std::cout << "substr: " << w << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2N0eXBlPgoKY29uc3QgY2hhciogbWF4X3dvcmQoY29uc3QgY2hhciogcywgY29uc3QgY2hhciomIGUsIGludCYgbil7CglpbnQgaywgbCwgaTsKCWNvbnN0IGNoYXIqIHAsICptLCAqdCA9IHM7CgoJbSA9IE5VTEw7CglpID0gMTsKCWZvcihuID0gayA9IDA7ICpzOyArK3MpewoJCWlmKHN0ZDo6aXNhbHBoYSgqcykgJiYgISBzdGQ6OmlzYWxwaGEoKihzICsgMSkpKXsKCQkJcCA9IHMgLSAxOwoJCQl3aGlsZSgocCA+PSB0KSAmJiBzdGQ6OmlzYWxwaGEoKnApKQoJCQkJLS1wOwoJCQkrK3A7CgkJCWwgPSAoaW50KShzIC0gcCk7CgkJCWlmKGwgPiBrKXsKCQkJCWsgPSBsOwoJCQkJbiA9IGk7CgkJCQltID0gcDsKCQkJCWUgPSBzICsgMTsKCQkJfQoJCQkrK2k7CgkJfQoJfQoJcmV0dXJuIG07Cn0KCgppbnQgbWFpbih2b2lkKXsKCWNoYXIgc1tdID0gImJlZ2luOiBzYXR1cm4sICBbanVwaXRlcl0sIG5lcHR1biwgdXJhbi4iOwoKCWludCBuOwoJY29uc3QgY2hhciogZTsKCWNvbnN0IGNoYXIqIHcgPSBtYXhfd29yZChzLCBlLCBuKTsKCWlmKHcgIT0gTlVMTCl7CgkJc3RkOjpjb3V0IDw8ICJ3b3JkOiAgICI7CgkJc3RkOjpjb3V0LndyaXRlKHcsIChpbnQpKGUgLSB3KSk7CgkJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCgkJc3RkOjpjb3V0IDw8ICJpbmRleDogICIgPDwgKHNpemVfdCkodyAtIHMpIDw8IHN0ZDo6ZW5kbDsKCQlzdGQ6OmNvdXQgPDwgIm51bWJlcjogIiA8PCBuIDw8IHN0ZDo6ZW5kbDsKCQlzdGQ6OmNvdXQgPDwgInN1YnN0cjogIiA8PCB3IDw8IHN0ZDo6ZW5kbDsKCX0KCXJldHVybiAwOwp9