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


Anmelden zum Antworten