【问题标题】:Trouble adding string to LinkedList in C在 C 中将字符串添加到 LinkedList 时遇到问题
【发布时间】:2014-04-24 09:30:24
【问题描述】:

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

【问题讨论】:

  • 结构定义了char 而不是char[]char*

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


【解决方案1】:

val 是一个char,实际上是一个介于 0 - 255 之间的数字。

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

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2017-10-09
    • 1970-01-01
    • 2015-04-09
    • 2017-03-10
    相关资源
    最近更新 更多