Einsteigerfrage: string pointer in C datei



  • Hallo,
    ich möchte gern einen string in meiner C datei bearbeiten und an den Aufrufer übergeben.

    #include <string.h>
    
    string* getString() {
       string* str;
       // Erzeuge string objekt
       return str;
    }
    

    Allerdings scheitert das schon am Rückgabetyp der Methode. Hier bekomme ich den Fehler: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

    Nun, meine Frage: Was mache ich falsch?
    Danke und lg,
    mannyk



  • Es gibt in C nunmal keine wirklichen Strings. Es gibt nur char[] Arrays bzw. Char-Pointer (char*).

    Aber das steht hier auf jeder Seite in dem Forum in 5 Threads...



  • Hallo!

    Ja, das hab ich schon gehört, aber ich dachte, dass ich die string library "string.h" auch in C dateien einsetzen kann. Ist das definitiv nicht der Fall?
    Lg,
    mannyk


  • Mod

    Doch natürlich kannst du die string.h einsetzen. Diese ist wichtiger Bestandteil der Sprache. Aber sie enthält keinen datentyp namens string. Sie enthält allerlei Funktionen zum Bearbeiten von char-Arrays. Keine Ahnung, wo du das überhaupt her hast, denn eine string.h mit einem Datentyp string gibt es in keiner mir bekannten Sprache. Eventuell ein extrem altes C++ Buch?



  • Zum Verständnis
    "string.h" ist keine Library.

    Die .h Dateien (kommt von Header) deklarieren Variablentype, Funktionen und definieren Makros (#define).

    Wenn du z.B.: die <stdio.h> in dein Programm einfügst (was anderes macht #include nicht) weiß der Compiler von den Funktionen zur Ein-/Ausgabe. Er kennt dann die Parameter und Rückgabetyp der Funktionen. In <stdio.h> ist auch der Variablentyp FILE deklariert mit dem viele dieser Funktionen arbeiten.

    Die Funktionen selber sind in der C-Standard-Library, die automatisch mit deinem Programm verbunden wird.

    Viele solcher Funktionen sind durch das ANSI genormt. http://de.wikipedia.org/wiki/ANSI. Darum ANSI-C.



  • Hi Leute!
    Danke für eure Hilfe!
    Da hatte ich wohl einfach eine falsche Sache im Kopf^^

    Ich arbeite nun doch mit c++ und dort gibts bis jetzt auch kein Problem 🙂

    Danke + lg,
    mannyk


  • Mod

    mannyk schrieb:

    Hi Leute!
    Danke für eure Hilfe!
    Da hatte ich wohl einfach eine falsche Sache im Kopf^^

    Ich arbeite nun doch mit c++ und dort gibts bis jetzt auch kein Problem 🙂

    Danke + lg,
    mannyk

    Aber dort benutzt du dann hoffentlich #include<string> und nicht string.h



  • Ja, aber danke für die Erinnerung 🙂


Log in to reply