String vergleichen
-
Hallo,
ich habe einen String, beidem ich überprüfen möchte, ob er mit einem bestimmten anderen String beginnt.
Bsp:
String1: "DINA4"
String2: "DIN"
Frage: Fängt String1 mit String2 an?Gibts da ne Standardfunktionalität?
Gruß, Annika
-
Nicht so richtig, aber so gehts:
#include <string> bool starts_with (const std::string& s1, const std::string& s2) { return s1.compare (0, s2.length (), s2) == 0; } int main () { std::string String1 = "DINA4"; std::string String2 = "DIN"; starts_with (String1, String2); }
-
Also String* hat in .Net auf jeden Fall eine Equals-methode:
String* a = S"DIN"; String* b = S"DIN"; bool c = a->Equals(b);Um teile eines String zu pruefen musst du das wohl ueber sub-strings machen:
String* a = S"DINA4"; String* b = S"DIN"; bool result; int i = 0; while ((i <= a->Length) & (i <= b->Length)) { i++; result = String::Compare(a->SubString(0,i), b->SubString(0,i)); }Dann hast du i = 3 und result = true;
-
-
.NET gehört nicht zum C++-Standard. Außerdem ist das testen über Substrings extrem ineffizient.
-
Danke für die schnelle Hilfe
, habe mich für den Lösungsvorschlag von .filmor entschieden! Funktioniert schon!

-
@.filmor: kannste auch noch ein ends_with posten?

-
bool ends_with (const std::string& s1, const std::string& s2) { return (s1.length () >= s2.length ()) && (s1.compare (s1.length () - s2.length (), s2.length (), s2) == 0); }