我想在C中的链表中添加一个字符串。我能够弄清楚如何添加一个整数,所以我认为添加一个字符串不会有太大的不同。所以我尝试了以下内容:
struct node{
char val;
struct node * next;
};
typedef struct node item;
void linked_list(char letter[]) {
item * curr, * head;
int i;
head = NULL;
curr = (item *)malloc(sizeof(item));
curr->val = letter;
curr->next = head;
head = curr;
curr = head;
while(curr) {
printf("%s\n", curr->val);
curr = curr->next ;
}
}
然而,我一直在
赋值使用指针生成整数而不使用强制转换
警告和
格式'%s'需要类型'char *',但参数2有'int'
如果在结构中,val是一个字符,为什么我会收到此错误?
旁注:char letter[]
从单独的main方法传入字母/字符。
我正在学习本教程中的C和链接列表:http://www.learn-c.org/en/Linked_lists。
答案 0 :(得分:3)
值是char
,实际上是0到255之间的数字。
你想要的是char *
,这是一个字符串。