c-在结构中使用字符串或指向字符串的指针



我想我遗漏了一些关键的东西,找不到答案。如果我想在struct中使用字符串,那么使用char数组还是指向它们的指针更好?以下代码按预期工作,但会引发警告"警告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()调用是否成功。

相关内容

  • 没有找到相关文章

最新更新