gpt4 book ai didi

C 使用函数将字符串值分配给结构中的字符串元素

转载 作者:行者123 更新时间:2023-11-30 15:08:59 25 4
gpt4 key购买 nike

我需要将一个字符串(大小为 [255] 的字符)分配给结构中的元素。该结构如下所示:

struct node{
int ID, YEAR, MONTH, DAY
char CATEGORY[255], DETAIL[255];
double AMOUNT;
struct node * next;
}
struct node * head = NULL;

我有代码从文本文件中获取值并将其设置为变量,然后将其传递给 add_struct 函数,如下所示:

void add_struct(int i, char c, char d, double a, int y, int m, int da){
if (head == NULL){
head = (struct node *) malloc(sizeof(struct node));
head->ID = i;
head->CATEGORY = c;
head->DETAIL = d;
head->AMOUNT = a;
head->YEAR = y;
head->MONTH = m;
head->DAY = da;
}

else {
struct node * p = head;
while(p->next != NULL) p = p->next;
p->next = (struct node *) malloc(sizeof(struct node));
p->next->ID = i;
p->next->CATEGORY = c;
p->next->DETAIL = d;
p->next->AMOUNT = a;
p->next->YEAR = y;
p->next->MONTH = m;
p->next->DAY = da;
}
}

我收到错误消息:

"incompatible types when assigning to type 'char[255]' from type 'char'"

如何正确地将这些值分配给元素 CATEGORY 和 DETAIL?

最佳答案

结构体的 CATEGORYDETAIL 字段定义为 255 个字符的数组,而 cd > 是 char 的变量。因此,您应该将函数更改为 void add_struct(int i, char *c, char *d, double a, int y, int m, int da) ,并将字符串复制到分配的结构中:

strcpy(head->CATEGORY, c);
strcpy(head->DETAIL, d);

关于C 使用函数将字符串值分配给结构中的字符串元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com