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*!


Anmelden zum Antworten