string an funktion zurückgeben



  • Bl1nk182 schrieb:

    ich brauche eine Funktion die einen string als parameter übergeben bekommt,diesen verändert,und dann wieder zurückgibt..ich habs tausendma versucht,nur ich krieg das wegen dn strings nich hin 😕

    string MyFunc (string wert)
    {
         //pruefen von irgendwas
         wert = "zurueckgegebener_wert";
         return wert;
    }
    

    das is der code mit dem ich das versucht habe><,habs auch noch mit anderen codes versucht,tuts aber nich,bitte um hilfe 😃
    MfG
    Bl1nk 182

    Eigentlich gehe ich davon aus, dass Du das schon probiert hast.... aber ansonsten verstehe ich das Problem wohl nicht!? Zum Beispiel,
    warum Du den String wieder zurückgeben willst.

    Wie wär's mit 'ner Referenz, ansonsten sieht die Sache doch nett aus.

    string & MyFunc (string & wert)
    


  • erstmal danke für die schnelle antwort

    mein code sieht immer noch so aus:

    string MyFunc(string wert)
    {
    	if //irgendwas
    		wert = irgendeinwert;
    	return wert;
    }
    

    die funktion rufe ich so auf:

    cout<<MyFunc(Satz[index_1][index_2]);
    

    wenn ich das compiliere erhalte ich 1 fehler:

    error C2679: Binaerer Operator '<<' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' ak
    zeptiert (oder keine geeignete Konvertierung moeglich)



  • Hallo,
    bist du sicher, dass du <string> inkludiert hast?



  • ja bin ich,andere operationen mit strings (wie wertzuweisungen) tuns ja auch..



  • Ein ausführbares Minimalbeispiel würde helfen!



  • Bevor du das minibeispiel von mir kompilieren kannst,musst du jedoch zwei dateien runterladen und einbinden

    [url]http://bl1nk182.bl.funpic.de/Programme/conioex.cpp [/url]
    [url]http://bl1nk182.bl.funpic.de/Programme/conioex.h [/url]

    #include <iostream>
    #include <conioex.cpp>
    #include <conioex.h>
    
    using namespace std;
    
    string MyFunc(string wert);
    
    int main(void)
    {
         char Schulfach[2];          //Variable um Abk. des Schulfachs einzutragen,z.B. M für Mathe
         cin>>Schulfach;
         cout<<MyFunc(Schulfach);
         return 0;
    }
    
    string MyFunc(string wert)
    {
           //if abfragen
           wert = "Mathe";
           return wert;
    }
    


  • Und wo ist da jetzt #include <string>? Willst du uns verarschen?



  • Also wenn ich den Quelltext compiliere (OHNE das conioex-Zeug - wieso sollten wir das brauchen, Du benutzt es doch garnicht! aber MIT <string>) erhalte ich 0,0 Fehler. Auf dem Bildschirm erscheint "Mathe". Wo war doch gleich das Problem?



  • und arbeite doch konsequent mit string, und nicht mit char!

    für was sollten die 2 dateien in deinem beispiel benötigt werden?

    [Edit] also ich hab keine fehler mit string und ohne das conio zeugs!



  • nein,wenn du mal genau hingucken würdest,dann siehst du,dass in den beiden dateien andere header eingebunden sind.
    die normale stringverarbeitung tuts ja auch



  • Bl1nk182 schrieb:

    nein,wenn du mal genau hingucken würdest,dann siehst du,dass in den beiden dateien andere header eingebunden sind.
    die normale stringverarbeitung tuts ja auch

    naja, und wenn du unsere tipps befolgen würde, würde dein beispiel auch funktionieren!

    wahrscheinlich benutzt du in deinem restlichen programm nicht wirklich string, sondern char!



  • Dann ist wohl Dein Compiler kaputt 🙄

    BTW: Man includiert eigentlich generell keine Implementationsdateien in Implementationsdateien.



  • dieses conioex zeugs is ja nich von mir,das hab ich mir ausm netz gezogen,um gotoxy und den ganzen kram mit den farben benutzen zu können,wobei da auch gesagt wurde,dass da die stringverarbeitung drin is.
    und warum tuts dann überhaupt die deklaration von string?



  • Haste noch Visual C++ 6? Da war das glaub ich so das man den string ohne include benutzen konnte, aber nicht ausgeben...



  • ........... schrieb:

    Haste noch Visual C++ 6? Da war das glaub ich so das man den string ohne include benutzen konnte, aber nicht ausgeben...

    Ist mit dem GCC 3.2 übrigens noch genauso.

    @Blink:
    Ändert aber nichts daran dass Du Dir gerade nicht helfen lassen willst da Du jeden sinnvollen Tipp bisher abgetan hast ("funzt ja sonst auch") - deshalb: Dein Compiler ist kaputt, lass es sein.



  • ja,ich hab microsoft visual c++ 6 -.-...na super..kann ich ja net wissen,dass das da net geht ><

    jetzt tuts aber alles 😃
    danke für die hilfe!



  • Bl1nk182 schrieb:

    ja,ich hab microsoft visual c++ 6 -.-...na super..kann ich ja net wissen,dass das da net geht ><

    jetzt tuts aber alles 😃
    danke für die hilfe!

    Hol dir einen aktuellen Compiler...


Anmelden zum Antworten