c语言中调用结构体出错,提取结构体中的数据出错.

在C语言编程中遇到结构体数据提取问题,具体表现为使用strcmp函数比较字符串时出现警告。代码示例中定义了包含导线参数的结构体,并尝试通过用户输入匹配结构体数组中的数据。然而,scanf函数的参数使用错误导致问题,应将变量名改为指针类型以正确接收字符串。修复后,程序能够正确读取并输出结构体中的信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提取结构体中的数据出错.

有下面这段代码,是输入提取结构体中的数据,可是老提示 [Warning] passing arg 1 of `strcmp' makes pointer from integer without a cast 请哪位大虾帮忙

#include

#include

char line_name;

float line_A;

float line_d;

double line_Tp;

float line_G;

float line_E;

double line_alf;

/******** 导线参数表************/

struct pick

{ char name[12];

float line_A;

float line_d;

double line_Tp;

float line_G;

float line_E;

double line_alf;

}pick_lin[5]={{"GJ-35" ,37.15 ,7.8 ,45472,318.2,181423,11.5e-6},

{"GJ-50" ,49.46 ,9.0 ,53317.9,423.7,181423,11.5e-6},

{"LGJ-70/10" ,79.39 ,11.4 ,23390,275.2,79000 ,19.1e-6},

{"LGJ-70/40" ,110.40,13.60,58300,511.3,105000,15.3e-6},

};

/*导线选取函数 */

void fun_picklin(struct pick *p)

{

char ch;

int i,j;

printf("\n");

printf("/*------请输入计算导线型号(如GJ-50或LGJ-120/20): ");

scanf("%s",ch);

for(i=0,j=0;i<=30;i++)

{ if(strcmp(ch,p[i].name)==0)

{ line_name=ch;

line_A=p[i].line_A;

line_d=p[i].line_d;

line_Tp=p[i].line_Tp;

line_G=p[i].line_G;

line_E=p[i].line_E;

line_alf=p[i].line_alf;

j=1;

}

}

if(j==0) printf("\n没有找到你所输入的导线型号\n");

printf("%s,%f,%f,%f,%f,%f,%f",line_name,line_A,line_d,line_Tp,line_G,line_E,line_alf);

}

int main(void)

{ fun_picklin(pick_lin);

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值