#include <stdio.h>
#include <ctype.h>
#include <string.h>
char* get_word(char*& s){
const char vs[] = "AEIOUYaeiouy";
size_t n1, n2, l;
char* p, *t = NULL;
if(! *s)
return NULL;
while(*s){
while(*s && ! isalpha(*s))
++s;
n1 = n2 = 0;
for(p = s; isalpha(*p); ++p){
if(strchr(vs, *p) != NULL)
++n1;
else
++n2;
}
l = (size_t)(p - s);
if((l == n1) || (l == n2)){
t = p;
p = s;
break;
}
s = p;
}
if(t != NULL){
if(*t)
*t++ = '\0';
s = t;
} else
p = NULL;
return p;
}
int main(void){
char s[] = "GPL, (wtf) bla-bla, you fin eye";
char* p, *i = &s[0];
while((p = get_word(i)) != NULL)
puts(p);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgoKY2hhciogIGdldF93b3JkKGNoYXIqJiBzKXsKCWNvbnN0IGNoYXIgdnNbXSA9ICJBRUlPVVlhZWlvdXkiOwoJc2l6ZV90IG4xLCBuMiwgbDsKCWNoYXIqICBwLCAqdCA9IE5VTEw7CgoJaWYoISAqcykKCQlyZXR1cm4gTlVMTDsKCgoJd2hpbGUoKnMpewoJCXdoaWxlKCpzICYmICEgaXNhbHBoYSgqcykpCgkJCSsrczsKCgkJbjEgPSBuMiA9IDA7CgkJZm9yKHAgPSBzOyBpc2FscGhhKCpwKTsgKytwKXsKCQkJaWYoc3RyY2hyKHZzLCAqcCkgIT0gTlVMTCkKCQkJCSsrbjE7CgkJCWVsc2UKCQkJCSsrbjI7CgkJfQoKCQlsID0gKHNpemVfdCkocCAtIHMpOwoJCWlmKChsID09IG4xKSB8fCAobCA9PSBuMikpewoJCQl0ID0gcDsKCQkJcCA9IHM7CgkJCWJyZWFrOwoJCX0KCQlzID0gcDsKCX0KCglpZih0ICE9IE5VTEwpewoJCWlmKCp0KQoJCQkqdCsrID0gJ1wwJzsKCQlzID0gdDsKCX0gZWxzZQoJCXAgPSBOVUxMOwoJcmV0dXJuIHA7Cn0KCgoKaW50IG1haW4odm9pZCl7CgljaGFyIHNbXSA9ICJHUEwsICh3dGYpIGJsYS1ibGEsIHlvdSBmaW4gZXllIjsKCgljaGFyKiBwLCAqaSA9ICZzWzBdOwoJd2hpbGUoKHAgPSBnZXRfd29yZChpKSkgIT0gTlVMTCkKCQlwdXRzKHApOwoJcmV0dXJuIDA7Cn0K