wydobycie tekstu ze stringa

0

Mam wektor stringów i chciałbym wydobyć z każdego elementu tego wektora tylko tą część która jest w nawiasach [] i przenieść to co jest wewnątrz do nowej zmiennej. Jak to zrobić?
Próbowałem najpierw z find, ale nawet nie chce się skompilować :( No i nie wiem co dalej.

vector<string> wektor;
wektor.push_back("Costam costam [tekst] costam");

string* poczatek = find (wektor[0].begin(), wektor[0].end(), '[');
string* koniec = find (wektor[0].begin(), wektor[0].end(), ']');
0

Ok, udało mi się napisać coś takiego:

vector<string> wektor;
wektor.push_back("Costam costam [tekst] costam");

size_t poczatek = wektor[0].find("[");
size_t koniec = wektor[0].find("]");
cout << wektor[0].substr(poczatek+1, koniec-poczatek-1);

Czy to jest dobry sposób?

1

Ewentualnie można jakiegoś regexa użyć.

0
#include <iostream>
#include <regex>
#include <string>
using namespace std;

int main() {
	string s = "Ala ma bardzo [tajnego kota] wiecie?";
	std::smatch m;
	regex_search(s, m, regex(R"(\[(.*)\])"));
	cout << m[1] << endl;
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1