Zeichenfolge ersetzen, Zeichen suchen



  • maho schrieb:

    danke, ssm, aber wozu ist das ? wo setzt man das wie warum ein ????

    as war für Caipi



  • Leute, was ist denn hier los ??? Wieso regt Ihr Euch denn alle so auf ? Ich war doch nur ein bißchen sauer über den Mangel an einfachen, schnell zu findenden Lösungen zu meinem Problem. Wenn ich C/C++ nicht mögen würde, würde ich mich damit doch nun auch nicht beschäftigen.

    Offensichtlich...
    ... nicht.

    Doch, Finix, offentsichtlich schon ! Woher soll ein Anfänger wie ich auf Begriffe wie namespace kommen ? Ich lese schon sehr viel, bin da sicher nicht faul, aber wieso zur Hölle soll ich mich eigentlich rechtfertigen, wenn ich eine neue Sprache lernen will ??? Seid doch glücklich, dass es noch einen in Eurer Gemeinde gibt.

    Weiterhin viel Glück mit deiner Einstellung.

    Was hat diese ganze Kritik und Klugscheißerei eigentlich mit meinem Problem zu tun ??? Ist dieser Raum wirklich dazu da, Anfänger zu vergraulen und sie zu kritisieren ??? Merkwürdig...

    Hier die Lösung:
    C/C++ Code:
    #include <string>

    Wie Du oben siehst, hab ich das bereits in meinen includes ! Das .h macht Null Unterschied, so viel weiß ich auch und hab ich auch durch ausprobieren herausbekommen.
    Werd mir jetzt aber gleich mal die Site angucken, die Du da gepostet hast.
    Und eins noch: Lasst uns mit der Diskussion aufhören, die nichts mit meiner Problemlösung zu tun hat, ok ?! 😉



  • maho schrieb:

    Das .h macht Null Unterschied, so viel weiß ich auch und hab ich auch durch ausprobieren herausbekommen.

    nicht ganz
    http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=iostream#Answ



  • @maho: Tut mir leid das ich mich jetzt erst wieder melde, aber ich hab gestern
    Abend nicht mehr hier reinschauen koennen. Fuer std::replace musst du die
    Headerdatei 'algorithm' includieren.

    mfg
    v R



  • Wie auch immer, ist zwar gut zu wissen, werd ich mir auch merken, aber es bringt mich nicht weiter, da die Fehlermeldung

    D:\Umwandlung.cpp(232) : error C2039: 'replace' : Ist kein Element von 'std'
    D:\Umwandlung.cpp(232) : error C2065: 'replace' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.

    durch Weglassen/Hinzufügen der .h-Endung nicht verschwindet.



  • maho schrieb:

    Wie auch immer, ist zwar gut zu wissen, werd ich mir auch merken, aber es bringt mich nicht weiter, da die Fehlermeldung

    D:\Umwandlung.cpp(232) : error C2039: 'replace' : Ist kein Element von 'std'
    D:\Umwandlung.cpp(232) : error C2065: 'replace' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.

    durch Weglassen/Hinzufügen der .h-Endung nicht verschwindet.

    Das ist merkwuerdig, denn bei mir funktioniert folgendes:

    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    int main() {
        string str("Danki");
        string oldChar("ke");
        char        newChar('e');
            replace(str.begin(), str.end(), oldChar, newChar);
            cout<<str<<std::endl;
        return 0;
    }
    

    ohne Probleme.

    mfg
    v R



  • Danke, virtuell Realisticer, aber auch das Includen von 'algorithm' führt zu einem "Fehler in Anwendung" (wie oben schonmal erwähnt). Um es nochmal genau zu zitieren. Es wird zwar nach der Compilierung gesagt: 0 Fehler, 0 Warnungen, aber das nach dem Kompilieren erscheinende "Fehler in Anwendung"-Fenster besagt:
    "Die Anweisung in '0x0040ef8c' verweist auf Speicher in '0xcccccccc'. Der Vorgang 'read" konnte nicht auf dem Speicher durchgeführt werden."



  • Liest du vielleicht irgendwo ueber Arraygrenzen hinweg oder sowas?

    Koenntest du den Code mal hier: http://rafb.net/paste/ posten und dann den
    Link hier reinstellen?

    mfg
    v R



  • virtuell Realisticer schrieb:

    Das ist merkwuerdig, denn bei mir funktioniert folgendes:

    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    int main() {
        string str("Danki");
        string oldChar("ke");
        char        newChar('e');
            replace(str.begin(), str.end(), oldChar, newChar);
            cout<<str<<std::endl;
        return 0;
    }
    

    ohne Probleme.

    mfg
    v R

    Meiner Meinung nach ist da ein Fehler drin.

    Müssen nicht oldChar und newChar vom gleichen Datentyp sein? 😕



  • Super, virtuell, funktioniert jetzt doch. Naja, einem Anfänger muss man eben manchmal ein ganzes Programm schreiben, damit man sieht, wo der Fehler liegt. Hatte das using namespace nicht drin. Außerdem hatte ich die Ausgabe in einer anderen Funktion drin. Ich weiß nicht was, aber eins von den beiden Sachen hat zu dem read-Feher geführt. Danke Euch allen ! jetzt werd ich nur nochmal ein bißchen damit rumspielen müssen um es wirklich zu kapieren und anwenden zu können.



  • template<caass FwdIt, class T>
        void replace(FwdIt first, FwdIt last, const T& vold, const T& vnew);
    

    Das Template kann ja nicht 2 verschiedene Datentypen annehmen



  • Ja, Horst, hast recht, ich hatte es eben mit Einzelzeichen ersetzen probiert und das hat geklappt, mit Zeichenketten kommt Deine Fehlermeldung.



  • Horst2 schrieb:

    template<caass FwdIt, class T>
        void replace(FwdIt first, FwdIt last, const T& vold, const T& vnew);
    

    Das Template kann ja nicht 2 verschiedene Datentypen annehmen

    Ja das stimmt. Das kommt von c&p. Hatte noch ein anderes Stueck Code getestet :).

    mfg
    v R


Anmelden zum Antworten