Prüfen ob ein String mit einem bestimmten String anfängt.
-
Wie kann man prüfen ob ein String mit einem anderen String anfängt?
Beispiel:
"Hallo Welt"
und jetzt soll überprüft werden ob der String mit "Hallo" anfängt.
-
Hallo,
entweder eine Schleife, die jedes Char testet, oder:#include <string.h>
int strncmp( const char *str1, const char *str2, size_t count );Dabei gibst du mit count die Länge des zu testenden Strings an. Liefert 0, wenn diese gleich sind.
Bei dir:
#include <string.h>
char *welt = "Hallo Welt";
char *hallo = "Hallo";
if(strncmp(welt,hallo,strlen(hallo)) == 0) printf("Alles klar);if(strncmp("Hallo Welt","Hallo",strlen("Hallo")) == 0) printf("Alles klar#2);
-
Hi,
naja, ist mit C++ etwas einfacher:
#include <iostream> #include <string> using namespace std; int main() { string str1 = "hallo welt"; string str2 = "hallo"; if( str1.substr(0, str2.length()) == str2) cout << "faengt mit" << str2 << endl; }
-
#include <iostream> #include <string> using namespace std; int main() { string str = "Hallo Welt"; cout << str << " beginnt mit 'Hallo': " << boolalpha << ( str.find("Hallo") == 0 ) << endl; }
-
Ich würds mit std::equal machen.
Bei der Lösung mit substr wird ein neuer String angelegt.
teuer
Bei der Lösung mit find wird auch woanders gesucht als am Anfang.
teuer