string::find() und exact match

The_Rave

Mitglied
Wenn ich mit string::find einen String durchsuche sagen wir mal nach dem Wort "und" bekomme ich auch Ergebnisse wenn z.B. "testund" im String steht. Gibt es da noch einen Weg mit find()? Oder eine besser geeignete Funktion?

Im Moment such ich mir im String den Anfang und das Ende des Suchwortes. Dann kopiere ich mir das, damit ich einen Direktvergleich mit if() machen kann.
 
? Guck doch einfach folgendes:
C++:
const bool sfind_exact(std::string const& source, std::string const& what)
{
    if (source.length() != what.length()) return false;
    return source == what;
}
oder was willst du haben?!
 
Ich möchte eigentlich nur ein Find() Ergebnis wenn wirklich ein exacter String gefunden wurde. Bei "und" eben nur "und", nicht undtest oder testund.

Mit deiner Funktion müsste ich ja für beide Strings also Anfang und Ende bestimmen, kopieren und dann übergeben um dann die Länge zu vergleichen. Das funktioniert zwar auch, mach ich aber mit meiner oben beschriebenen Methode im Prinzip jetzt auch schon. Hätte ja sein können, daß es für sowas auch eine Funktion gibt.
 
? Es ist immernoch die Frage was du willst:
Code:
"Ein String ohne Sinn" => "ohne" suchen => gefunden? ja
"Ein Stringohne Sinn" => "ohne" suchen => gefunden? nein
Einfach find mit Leerzeichen davor und danach, dann geht's.
oder
Code:
"Ein String ohne Sinn" => "ohne" suchen => gefunden? nein
"Ein Stringohne Sinn" => "ohne" suchen => gefunden? nein
"ohne" => "ohne" suchen => gefunden? ja
operator== ...
 
Ja ich will das hier:

"Ein String ohne Sinn" => "ohne" suchen => gefunden? ja
"Ein Stringohne Sinn" => "ohne" suchen => gefunden? nein

Das ist mit den Leerzeichen davor und dahinter find ich toll. Ist ja eigentlich schon wieder zu einfach um selber drauf zu kommen. Ich überleg zwar noch ob es da auch wieder einen Haken gibt, aber es funktioniert erstmal. Danke.
 
Gibt einen Haken ;) Musst erstmal gucken ob er eins ohne Leerzeichen findet ... wenn es ganz am Anfang des Strings steht musst du testen ob am Ende ein Leerzeichen ist, sonst ob davor auch. Wenns ganz am Ende steht muss das letzte Zeichen auch kein Leerzeichen sein ;)
 
Zurück