Drucken eines Char *
Ich entschuldige mich im Voraus für die dumme Frage!
Hier ist mein struct def:
struct vcard {
char *cnet;
char *email;
char *fname;
char *lname;
char *tel;
};
Ich versuche zu drucken, ist eine Darstellung dieser Struktur mit der Funktion vcard_show(vcard *c), aber der compiler wirft wieder eine Warnung:
void vcard_show(struct vcard *c)
{
printf("First Name: %c\n", c->fname);
printf("Last Name: %c\n", c->lname);
printf("CNet ID: %c\n", c->cnet);
printf("Email: %c\n", c->email);
printf("Phone Number: %c\n", c->tel);
}
Beim kompilieren: "warning: format '%c' erwartet Typ "int", aber argument 2 hat Typ 'char *'"
Nicht %c das symbol für " char*"?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Sie verwenden möchten
%s
für strings (char*).%c
steht für ein einzelnes Zeichen (char).Einem Sternchen
*
nach Typ macht es einen Zeiger auf Typ. Sochar*
ist eigentlich ein Zeiger auf ein Zeichen. In C sind strings übergeben-by-reference, indem der Zeiger auf das erste Zeichen der Zeichenfolge. Das Ende der saite wird bestimmt durch die Einstellung der byte nach dem letzten Zeichen des Strings auf NULL (0).Typ der Eigenschaft, die Codierung für eine
char *
ist%s
.%c
ist für einechar
(nicht der Zeiger nur ein einzigeschar
)Es sei denn, Sie haben einige typedef Sie nicht sagen uns darüber, sollten Sie vielleicht erklären
vcard_show()
wie diese: