fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <iterator>
  5.  
  6. using namespace std;
  7. string a1 (string input)
  8. {
  9. int i = 0;
  10. int c = 1;
  11. string a1_output = "";
  12. a1_output+=input.at(i++);
  13. while (c != 0)
  14. {
  15. if (input[i] == '[')
  16. {
  17. c++;
  18. }
  19. if (input[i] == ']')
  20. {
  21. c--;
  22. }
  23. if (c == 0) { return a1_output;}
  24. else a1_output+=input.at(i);
  25. i++;
  26. }
  27. return a1_output;
  28. }
  29. std::vector<string> extract (string inp)
  30. {
  31. std::vector<string> c_output {};
  32. for (int i = 0; i < inp.length(); i++)
  33. {
  34. if (inp.at(i) == '[')
  35. {
  36. c_output.push_back(a1(inp.substr(++i, inp.length())));
  37. }
  38. }
  39. return c_output; //То, что Вам надо - вектор с нужными данными.
  40. }
  41.  
  42. int main()
  43. {
  44. std::vector<string> out;
  45. string input, temp;
  46. std::cin >> input;
  47. out = extract(input);
  48. std::copy(out.begin(), out.end(), std::ostream_iterator<string>(std::cout, "\n"));
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 5660KB
stdin
это[тест[ова[я]]]ст[ро]к[а]
stdout
тест[ова[я]]
ова[я]
я
ро
а