StrStr Funktion



  • Ich versuche, meine eigene StrStr-Funktion zu tun, ich weiß nicht, wie man das tut, wie vollbringt man das? Kann jemand helfen, das für mich zu schaffen?

    Dank!



  • was soll denn diese StrStr-Funktion machen?

    ...oder zählt das zu den Basics einer programmiersprache, dass man sowas wissen sollte ???



  • @mika: strstr() sucht eine Zeichenkette in einer anderen Zeichenkette, ja das sollte man wissen *g*, naja nicht unbedingt 🙂

    @Rizael: Ich mach das immer so (wenn ich nicht strstr() benützen kann):

    1. Gehe String solange durch bis str[i]==pattern[0]
    2. Neue Schleife, gehe hier solange durch solange str[i+j]==pattern[j], wenn j==strlen(pattern) haben wir es gefunden und geben str[i] zurück, sollte irgendwann != herauskommen gehen wir in der äußeren Schleife weiter

    Gibt aber sicher schnellere Lösungen, *erinner*, man merkt sich wann ich zuletzt häufige Buchstaben gefunden habe und kann dann in guten Fällen i um mehr als 1 erhöhen wenn das Pattern nicht gepasst hat, etc.

    MfG SideWinder



  • // ungetestet
    
    const char* strstr(const char* str, const char* pattern) {
        for(int i = 0; i < strlen(str) - strlen(pattern); ++i) {
            if(strncmp(str + i, pattern, strlen(pattern)) == 0) {
                return str + i;
            }
        }
    
        return NULL;
    }
    


  • ich versteh einfach nicht, warum man sich noch mit char-Arrays rumquält, es gibt doch die wunderschöne string-Klasse 😉

    //funktionsteil
    string str_str(const string&s1,const string&s2)
    {
    	return s1.substr(s1.find(s2),s1.size());
    }
    
    //mainteil
    string sentence="this is a wonderful sentence.";
    string search="wonderful";
    
    cout << str_str(sentence,search) << endl;
    

    li la lumdidon,
    fertig ist die str_str()-funktion 😃

    mfg


Anmelden zum Antworten