Cześć,
Mam taki problem w wyrażeniu które ma wygląd
(10 40 2, 40.455 30 34.8 , 20 20 20 , 30 10 12)
Muszę znaleźć i wydobyć liczby (najlepiej jak by mi się udało "trójki" np. 10 40 2) bo później właśnie będą mi służyły jako współrzędne, więc chciał bym je zapisać w tablicy 3 wymiarowej.
Ponieważ wiem że zawsze występują w takich trójkach <liczba>spacja<liczba>spacja<liczba>, reszta może być różna ale zawsze ta "trójka" będzie miała taki wygląd. Liczba możne być zarówno całkowita jak i zmiennoprzecinkowa.
W związku z tym pomyślałem że użyję wyrażenia regularnego, ale nie jestem pewien czy jest ok.
([0-9]*)\.{0,1}([0-9]+)\s([0-9]*)\.{0,1}([0-9]+)\s([0-9]*)\.{0,1}([0-9]+)
Mam taki kod:
#include<regex>
std::string points="(10 40 2, 40.455 30 34.8 , 20 20 20 , 30 10 12)"
std::regex model("([0-9]*)\.{0,1}([0-9]+)\s([0-9]*)\.{0,1}([0-9]+)\s([0-9]*)\.{0,1}([0-9]+)");
std::smatch result;
double ***returnpoint;
if(std::regex_search(multipoint,result,model))
{
cout<<result[0];
}
Niestety nie wiem jak to zapisać to tablicy returnpoint wszystkie wyniki?
Potrzebne mi jest to bo potem będę tego używał przy obliczeniach i będzie mi wygodnie po prostu za pomocą trzech pętli for wydobyć wartości x y z.
Dziękuję z góry za pomoc, bo siedzę nad tym już drugi dzień i nie mam pomysłu.