gpt4 book ai didi

c - 在 C 中使用 strtok 为结构体赋值

转载 作者:行者123 更新时间:2023-11-30 14:55:02 25 4
gpt4 key购买 nike

我在 guest_init 中收到一个默认的字符数组(第一个/最后一个)(并且我需要初始化这些值,以便 guest 具有默认值)我的以下代码正确吗?当我运行这个 g->first_name 时总是被分配垃圾。需要一些帮助。

struct guest {
char last_name[30];
char first_name[30];
};
struct auditorium_seating {
struct guest **seating;
};
void guest_init_default(struct guest *g)
{

*g->first_name = "???";
*g->last_name = "???";
}
void guest_init(struct guest *g, char *info)
{
strcpy(g->first_name, strtok(info, "/"));
strcpy(g->last_name, strtok(NULL, "\0"));




}
void auditorium_seating_init(int rowNum, int columnNum, struct auditorium_seating *a)
{
a->seating=malloc((sizeof(a->seating[rowNum][columnNum])));
char string_arr[30]="aaa/bbb";
for (int i = 0; i<rowNum; i++)
{
for (int j = 0; j<columnNum; j++)
{



//guest_init_default(a->seating);
guest_init(a->seating,string_arr);


}
}

}

auditorium_seating_init 正在从 main 中调用。

void main() {
struct auditorium_seating auditorium_seating;
struct guest temp_guest;
int row, col, rowNum, columnNum;
char guest_info[30];

printf("Please enter a number of rows for an auditorium seating.");
scanf_s("%d", &rowNum);

printf("Please enter a number of columns for an auditorium seating.");
scanf_s("%d", &columnNum);

auditorium_seating_init(rowNum, columnNum, &auditorium_seating);

printf("Please enter a guest information or enter \"Q\" to quit.");
}

最佳答案

启用编译器警告:*g->first_name = "???"; 是错误的。

并且 strtok(NULL, "\0")); 也是错误的。

您可能想要这个:

#include <string.h>
#include <stdio.h>

struct guest {
char last_name[30];
char first_name[30];
};

void guest_init(struct guest *g, char *info)
{
strcpy(g->first_name, strtok(info, "/"));
strcpy(g->last_name, strtok(NULL, "/"));
}

int main()
{
struct guest g;
char info[] = "Foo/Bar";
guest_init(&g, info);
printf("Last Name = %s\n", g.last_name);
printf("First Name = %s\n", g.first_name);
}

可能还有更多与 structauditorium_seating *a 相关的错误,但您没有发布该代码。

关于c - 在 C 中使用 strtok 为结构体赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46294147/

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