[英]Using strings or pointers to strings in struct
我想我错过了一些关键的东西,我找不到答案。 如果我想在结构中使用字符串,最好使用 char arrays 还是指向它们的指针? 以下代码按预期工作,但会引发警告“警告 C4047 'function': 'const char ' 在间接级别上与 'char ( )[3] 不同”
与以下结构定义一起使用时
typedef struct element {
char name[20];
char symb[3];
double wt;
}element;
并遵循创建元素的过程
element e;
char name[20];
char symbol[3];
scanf("%s %s %lf", &name, &symbol, &e.wt);
strcpy(&e.name, &name);
strcpy(&e.symb, &symbol);
检查数据类型。
改变
strcpy(&e.name, &name);
至
strcpy(e.name, name);
和
scanf("%s %s %lf", &name, &symbol, &e.wt);
至
scanf("%s %s %lf", name, symbol, &e.wt);
也就是说,最好使用fgets()
来获取用户输入。 如果必须使用scanf()
,则必须在使用扫描值之前检查scanf()
调用是否成功。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.