无法在C中将字符串添加到LinkedList

时间:2014-03-18 15:27:13

标签: c string struct linked-list c-strings

我想在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

1 个答案:

答案 0 :(得分:3)

值是char,实际上是0到255之间的数字。

你想要的是char *,这是一个字符串。