Печать Чаре *
заранее извиняюсь за глупый вопрос!
вот моя структура def:
struct vcard {
char *cnet;
char *email;
char *fname;
char *lname;
char *tel;
};
Я пытаюсь распечатать представление этой структуры с помощью функции vcard_show( vcard *c), но компилятор отбрасывает предупреждение:
void vcard_show(struct vcard *c)
{
printf("First Name: %cn", c->fname);
printf("Last Name: %cn", c->lname);
printf("CNet ID: %cn", c->cnet);
printf("Email: %cn", c->email);
printf("Phone Number: %cn", c->tel);
}
при компиляции: "предупреждение: формат" %c "ожидает тип "int" , но аргумент 2 имеет тип " char *""
разве %c не является символом char*?
3 ответов
вы хотите использовать %s
, что для строк (char*). %c
для одиночных символов (char).
звездочка *
после типа делает его указателем на тип. Так что char*
на самом деле является указателем на символ. В C строки передаются по ссылке путем передачи указателя на первый символ строки. Конец строки определяется путем установки байта после последнего символа строки в значение NULL (0).
Если у вас нет typedef, о котором Вы нам не говорите, вы, вероятно, должны объявить vcard_show()
такой:
void vcard_show(struct vcard *c)