fork(1) download
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4.  
  5.  
  6. char* get_word(char*& s){
  7. const char vs[] = "AEIOUYaeiouy";
  8. size_t n1, n2, l;
  9. char* p, *t = NULL;
  10.  
  11. if(! *s)
  12. return NULL;
  13.  
  14.  
  15. while(*s){
  16. while(*s && ! isalpha(*s))
  17. ++s;
  18.  
  19. n1 = n2 = 0;
  20. for(p = s; isalpha(*p); ++p){
  21. if(strchr(vs, *p) != NULL)
  22. ++n1;
  23. else
  24. ++n2;
  25. }
  26.  
  27. l = (size_t)(p - s);
  28. if((l == n1) || (l == n2)){
  29. t = p;
  30. p = s;
  31. break;
  32. }
  33. s = p;
  34. }
  35.  
  36. if(t != NULL){
  37. if(*t)
  38. *t++ = '\0';
  39. s = t;
  40. } else
  41. p = NULL;
  42. return p;
  43. }
  44.  
  45.  
  46.  
  47. int main(void){
  48. char s[] = "GPL, (wtf) bla-bla, you fin eye";
  49.  
  50. char* p, *i = &s[0];
  51. while((p = get_word(i)) != NULL)
  52. puts(p);
  53. return 0;
  54. }
  55.  
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
GPL
wtf
you
eye