gpt4 book ai didi

c - 将带有空格的字符串读取到列表变量中

转载 作者:行者123 更新时间:2023-11-30 18:14:48 24 4
gpt4 key购买 nike

我这样定义我的列表:

struct student {

char vname[30]; // Vorname
char nname[30]; // Nachname
int mnr; // Matrikelnummer
char adresse[50]; // Adresse
int pfkur; // Anzahl der bereits belegten Pflichtkurse
struct student *next; //Zeiger auf Nachfolger
struct student *prev; // Zeiger auf Vorgänger

};
typedef struct student student;
typedef struct student *pstudent;

现在我在扫描带有空格的字符串(例如“van Helsing”)时遇到问题

我将事物扫描到列表中的实现是这样的:

pstudent allocate(void){ 
pstudent elp;
elp = (pstudent)malloc(sizeof(*elp));
if (elp == NULL){printf("ERROR: malloc"); exit(1);}
elp -> next = NULL;
return elp;
} /* allocate */

elp = allocate();
printf("\n Vorname:\t\t "); scanf("%s", elp -> vname); // Vorname
printf(" Nachname:\t\t "); scanf("%s", elp -> nname); //Nachname
printf(" Matrikelnummer:\t\t "); scanf("%d",&(elp -> mnr));
printf(" Adresse:\t\t "); scanf("%s", elp -> adresse); // Adresse
printf(" Pflichtkurse:\t\t "); scanf("%d", &(elp -> pfkur)); //
elp -> next = studentlist;
studentlist = elp;

这些只是一个更大项目的代码片段,因此如果您需要任何上下文,请随时询问,但我认为提供了足够的信息。我还知道缺少一些东西,例如列表的完整连接等等。

我正在寻找一种方法将字符串扫描到 vname、nname 和 adresse 中,其中包含空格。现在,当我尝试这样做时,整个程序变得非常错误。

提前谢谢您。

最佳答案

尝试使用 scanf("%[^\n]s", elp -> vname);它将读取字符串直到换行符。

关于c - 将带有空格的字符串读取到列表变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54078056/

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