C ++ Nummer aus der Mitte eines Strings extrahieren
Ich habe einvector
enthältstrings
die das Format von @ habtext_number-number
Z.B Example_45-3
Ich möchte nur die erste Nummer 45
im Beispiel) und nichts anderes, was ich mit meinem aktuellen Code machen kann:
std::vector<std::string> imgNumStrVec;
for(size_t i = 0; i < StrVec.size(); i++){
std::vector<std::string> seglist;
std::stringstream ss(StrVec[i]);
std::string seg, seg2;
while(std::getline(ss, seg, '_')) seglist.push_back(seg);
std::stringstream ss2(seglist[1]);
std::getline(ss2, seg2, '-');
imgNumStrVec.push_back(seg2);
}
Gibt es rationalisiertere und einfachere Möglichkeiten, dies zu tun? und wenn ja was sind sie?
Ich bitte nur aus dem Wunsch heraus zu lernen, wie man besser codiert, da der obige Code am Ende des Tages nur die erste Zahl erfolgreich extrahiert, aber es scheint langwierig und rund.