Strings in Funktionen übergeben



  • Hi

    ich habe eine funktion, in die ich 2 Stirngs übergeben will, aber bei mir kommen immer nur fehlermeldungen

    Wie geht das?
    Vielen Dank

    Bernd

    [ Dieser Beitrag wurde am 16.11.2002 um 21:03 Uhr von Bernd_K editiert. ]



  • Meine Kristallkugel ist gerade in der Werkstatt. Wie sieht der Aufruf auf, wie die Funktion, und wie lauten die Fehlermeldungen?



  • meinst du "richtige" strings?
    an funktionen tust du mit parametern übergeben (*lol* was für ein deutsch...)

    also func(string& s1, string& s2)
    und vergiss nich <string> zu inkludieren...

    obwohl ich glaub strings gehören eher nach c++



  • Original erstellt von Bernd_K:
    ... ich habe eine funktion, in die ich 2 Stirngs übergeben will, aber bei mir kommen immer nur fehlermeldungen... [ Dieser Beitrag wurde am 16.11.2002 um 21:03 Uhr von [qb]Bernd_K editiert. ][/QB]

    Ein bischen Code wäre nicht schlecht ...



  • Ok, folgendes:

    Bsp: ich habe 2 strings:

    char test1[6]="Hallo"
    char test2[5]="Welt!"
    

    Diese 2 soll in die Funktion speichern übergeben werden

    int speichern(hier Anweisung)
    {
    //Speicher-Anweisung
    }
    

    mein richtiger Funktionskopf lautet jetzt so:

    int speichern(FILE *pfile, string &titel, string &interpret, string &album, string &jahr, string &kommentar, string &genre)
    

    Den Prototypen hab ich nat. deklariert, string.h includiert.

    Ausgeben wird folgender Fehler

    error C2061: Syntaxfehler : Bezeichner 'string'
    

    Das mit string scheint nicht zu klappen. 😕

    mfg

    Bernd



  • int speichern(char *str1, char *str2) { .. }
    

    Der Datentyp "string" ist in ANSI-C erst mal nicht standardmäßig definiert.



  • Vielen Dank



  • hallo!

    Habe auch noch eine Frage zu den übergebenen strings. also ich hab dann die Funktion:
    funktion(char *string1, char *string2)

    Wie kann ich nun die einzelnen werte im string verändern? mit *(string1+x)='a' oder mit string[x]='a'; oder wie?



  • Genau so. Genau genommen übergibt man nicht 'den String' an die Funktion, sondern einen Zeiger auf einen Speicherbereich (an dem sich sinnvollerweise ein String befinden sollte). Deswegen kann man ganz normal diesen Speicher innerhalb der Funktion verändern ...



  • Original erstellt von Bernd_K:
    **Bsp: ich habe 2 strings:

    char test1[6]="Hallo"
    char test2[5]="Welt!"
    ```**
    

    Der zweite ist aber keine String im C Stil. Denn strings wären 0 terminiert, dieser ist es nicht.
    schreib:
    char test1[]="Hallo";
    char test2[]="Welt!";

    und alle sind happy


Anmelden zum Antworten