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
-
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
-
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,
mannykAber dort benutzt du dann hoffentlich #include<string> und nicht string.h
-
Ja, aber danke für die Erinnerung