9 Stimmen

Wie findet man heraus, ob eine gegebene Zeichenkette der Hex-Notation entspricht, z. B. 0x34FF ohne regex?

In Regex würde es lauten 0x[0-9a-fA-F]+ aber wie kann man das in reinem C++ erreichen?

0voto

Marc Dirven Punkte 199

Sie könnten verwenden std::count_if um zu prüfen, ob die Anzahl gleich der Größe ist.

std::string_view v("0xa3");

bool correctPrefix = v.rfind("0x", 0) == 0 && v.length() > 2;
correctPrefix = correctPrefix ? std::count_if(v.begin() + 2,
                         v.end(),
                         ::isxdigit) == v.length() - 2 : false;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X