fork download
  1. #include <iostream>
  2.  
  3. char* str_get(char*& s, char fch, char lch){
  4. int k;
  5. char* q, *p = s;
  6.  
  7. while(*s){
  8. while(*s && (*s != fch))
  9. ++s;
  10. if(! *s)
  11. break;
  12.  
  13. k = 1;
  14. for(p = s + 1; *p; ++p){
  15. if(*p == fch)
  16. ++k;
  17. else if(*p == lch){
  18. if(--k < 1){
  19. *p++ = '\0';
  20. q = s + 1;
  21. s = p;
  22. return q;
  23. }
  24. }
  25. }
  26. s = p;
  27. }
  28. return NULL;
  29. }
  30.  
  31.  
  32. int main(void){
  33. char s[] = "[pascal] bla [[:[perl]:]], 124hjk [game over]";
  34.  
  35. char* t;
  36. char* p = &s[0];
  37. while((t = str_get(p, '[', ']')) != NULL)
  38. std::cout << t << std::endl;
  39. return 0;
  40. }
Success #stdin #stdout 0s 3140KB
stdin
Standard input is empty
stdout
pascal
[:[perl]:]
game over