String nach einem anderen String durchsuchen [gelöst]



  • Hallo liebe Community.

    Ich hänge hier gerade an meiner Hausaufgabe.

    Aufgabe: Schreiben und kommentieren sie ein C++ Programm, das mit Zeichenketten arbeitet. Erstellen und testen Sie folgende Funktionen.

    substitute: Diese Funktion bekommt drei Strings übergeben. Der erste wird per Referenz übergeben und enthält die Zeichenkette, in der von links beginnend nach dem zweiten String gesucht wird. Jedes solche vorkommen wird direkt durch den dritten String ersetzt, danach wird hinter dem eingeführten String weitergesucht bis das Ende des zu durchsuchenden Strings erreichst ist. Die Funktion soll die Anzahl der Ersetzungen zurückgeben und den ersetzten String im Referenzparameter speichern.

    Meine Ideen bis jetzt sind bei der Aufgabe: Mir das erste Zeichen meines 2. Strings zu schnappen und damit durch den ersten String zu gehen taucht es auf muss ich zum zweiten Zeichen springen von meinem zweiten String. Nur bräuchte ich Hilfe beim ersetzen des gefundenen Strings und dabei wie ich da weiter mache wo ich aufgehört habe. Also wird das erste Zeichen gefunden will ich nur eine Stelle weiter und nicht wieder von neu anfangen.

    Danke im voraus 🙂



  • 
    ```#include <iostream>
    
    using namespace std;
    
    void substitute(string& a,string b, string c)
    {
        int x=a.length();
        int y=b.length();
        int z=c.length();
        int i=0;
        int j=0;
    
            while (j<x)
            {
                if (b[i]==a[j])
                {
                    i++
                    while (j<x)
                    {
                        
                    }
    
                }
                if (i==y)
                {
    
                }
                j++;
            }
        }
    
    
    int main()
    {
        string a;
        string b;
        string c;
        getline(cin, a);
        getline(cin, b);
        getline(cin, c);
        return 0;
    }


  • @geralt96 sagte in String nach einem anderen String durchsuchen:

    Mir das erste Zeichen meines 2. Strings zu schnappen und ...

    Ist es verboten, die Dokumentation von std::string anzuschauen? Strings suchen könnte eine häufiges Problem sein, das schon in der Standardbibliothek gelöst wurde.... Vielleicht gibt es ja auch schon Funktionen zum Löschen aus einem String und Einfügen in einen String. Meine Suchbegriffe wären "find", "insert", "erase" oder sogar "replace".



  • Oh eine tolle Aufgabe für regex 🙂

    Aber nimm mal
    string::find um nach dem "zweiten String" zu suchen --> http://www.cplusplus.com/reference/string/string/find/

    und

    string::replace um den gefundenen "zweiten String" durch den "dritten String" zu ersetzen. --> http://www.cplusplus.com/reference/string/string/replace/



  • Danke euch für die schnellen Antworten ich mach mich dann mal ran. 🙂


Anmelden zum Antworten