gpt4 book ai didi

c - 禁止指针和整数之间的比较

转载 作者:行者123 更新时间:2023-11-30 20:28:04 25 4
gpt4 key购买 nike

struct student
{
char am[7];/* èá íáé*/
float final_grade;
float exam_grade;
float essay_grade;
};
struct student mathites[1];

do{
printf("Dwse A.M.:");
scanf("%s",&mathites[j].am);
} while((mathites[j].am<8120000) || (mathites[j].am>812015));

我看到这样的帖子,但是每个人都问与“==”比较,所以答案是strcmp,这个案例有类似的东西吗?

最佳答案

本例有类似的情况吗?

这个有点不同,因为您试图检查字符串是否在数值范围内。

首先几点:

<小时/>
struct student mathites[1];

如果您要声明一个数组,最好不要将其设为数组。

char am[7];/* èá íáé*/

如果您要比较的最大值是 7 个字符“8120000”,那么您希望数组大小为 8(包括空终止符的空间)

scanf("%s",&mathites[j].am);}

获取字符串时不需要使用 & 运算符,并且应该使用限制器,这样就不会溢出字符串

<小时/>

考虑到这一点,我认为代码应该更像是:

struct student
{
char am[8];/* èá íáé*/
float final_grade;
float exam_grade;
float essay_grade;
};

struct student mathites;
do {
printf("Dwse A.M.:");
scanf("%7s",mathites.am);}

现在你的实际问题是,你需要先将字符串转换为数字,然后检查值:

    long str_value = strtol(mathites.am, NULL, 10);
}
while((str_value <8120000) || (str_value >812015));

关于c - 禁止指针和整数之间的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385411/

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