Drucken eines Char *

7

Ich entschuldige mich im Voraus für die dumme Frage!

Hier ist meine Struktur def:

%Vor%

Ich versuche, eine Darstellung dieser Struktur mit der Funktion vcard_show (vcard * c) zu drucken, aber der Compiler wirft eine Warnung zurück:

%Vor%

Beim Kompilieren: "Warnung: Format '% c' erwartet Typ 'int', aber Argument 2 hat den Typ 'char *'"

Ist% c nicht das Symbol für char *?

    
Alex Nichols 08.03.2013, 00:18
quelle

3 Antworten

13

Sie möchten %s verwenden, was für Strings (char *) ist. %c ist für einzelne Zeichen (char).

Ein Sternchen * nach einem Typ macht es zu einem Zeiger auf den Typ. Also char* ist eigentlich ein Zeiger auf ein Zeichen. In C werden Zeichenfolgen übergeben, indem der Zeiger an das erste Zeichen der Zeichenfolge übergeben wird. Das Ende der Zeichenfolge wird festgelegt, indem das Byte nach dem letzten Zeichen der Zeichenfolge auf NULL (0) gesetzt wird.

    
Jonathon Simister 08.03.2013, 00:20
quelle
5

Die Codierung des Eigenschaftstyps für char * ist %s . %c ist für char (nicht der Zeiger nur ein einzelnes char )

    
DanZimm 08.03.2013 00:20
quelle
2

Es sei denn, Sie haben einen typedef, von dem Sie uns nichts sagen, sollten Sie vcard_show() wahrscheinlich wie folgt deklarieren:

%Vor%     
Crash Magnet 08.03.2013 00:27
quelle

Tags und Links