Problem mit Stringausgabe
-
Hallo,
dieses Programm läßt mich fast verzweifeln. Wie kann ich es schaffen, daß von der Funktion ein String zurückgeliefert wird und im Hauptprogramm über printf ausgegeben werden kann?
Vielen Dank
#include <stdio.h> #include <string.h> char putRueckgabe() { char text1 = "Dies ist ein Beispieltext"; return text1; } void main() { char text; text = putRueckgabe(); printf("%s",text); }
-
in C ist ein string ist kein char sondern ein char*!
dein programm muß also so aussehen:
#include <stdio.h> #include <string.h> char *putRueckgabe() { char *text1 = "Dies ist ein Beispieltext"; return text1; } void main() { char *text; text = putRueckgabe(); printf("%s",text); }
der C-compiler legt für jede zeichenketten-konstante intern ein char-array an und setzt an die programmstelle, an der die zeichenkette steht, einen zeiger auf dieses char-array ein. "Dies ist ein Beispieltext" ist in C deshalb eigentlich eine zeiger-konstante vom typ char*!