永发信息网

strcmp 参数一个是结构体变量中的字符串变量,另一个参数是常量

答案:3  悬赏:80  手机版
解决时间 2021-12-25 08:22
例如这样:strcmp(p[i]->str,"ok");
error:suspicious pointer conversion
1楼的回复:p[i]已经是指向结构体的指针,就算用menber[i].str还是不行(menber是结构体变量)
,不行,我觉得是类型不同所导致的;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
struct read
{
char str[50];//改了这里就没警告了,小问题啊,这几天做多了题就看不见了,呵呵,程序还是行直接出问题关掉了,我再看看,
}menber[50];
struct read *p[50];
FILE *fp;
int j,i=0;

clrscr();
if((fp=fopen("any.ini","r"))==NULL)
{
printf("cannot open this file.\n");
exit(0);
}
fread(&menber[0],sizeof(struct read),1,fp);//2楼在这里以及后一句的修改我不懂是什么用意
p[0]=&menber[0];
while(!!strcmp(p[i]->str,"ok"))//文件是以“ok”作为最后一个记录
{
fread(&menber[i],200,1,fp);//200我改为sizeof(struct read)了
p[++i]=&menber[i];
}
fclose(fp);
for(j=0;j<i+1;j++)
{
printf("%s ",p);
}
}
最佳答案
strcmp(s1,s2)是对字符串s1和s2进行比较,返回比较结果相等则返回0,s1>s2时返回正数,s1<s2时返回负数,楼主的这个异常应该是参数“p[i]->str”有问题,如果是结构体变量中的字符串变量,试试p[i].str看看吧。
补充:
s1和s2这两个参数应该用地址,不好意思,好久不用我也忘记了,问题可能出在“ok”,你试试看用一个变量b[2]=“ok”,然后strcmp(p[i]->str,b)试试看,如果p[i]->str不是地址的话也改为地址。
全部回答
如果 p[i]->str 是字符串的话,这条语句没问题,你最好能把p[i]的声明贴出来 ============ 先确定你的 struct read { str[50]; //是char str[50] ?? 是的话再往下看 }menber[50]; ================= if((fp=fopen("any.ini","r"))==NULL) { printf("cannot open this file.\n"); exit(0); } fread(member[0].str, 49, 1, fp); //修改这里 member[0].str = 0; //添加这句 p[0]=&menber[0]; while(!!strcmp(p[i]->str,"ok"))//文件是以“ok”作为最后一个记录 { fread(&menber[i],200,1,fp); p[++i]=&menber[i]; } fclose(fp); 那还是程序其他地方有问题,你再看看
strcmp(s1,s2)是对字符串s1和s2进行比较,返回比较结果相等则返回0,s1>s2时返回正数,s1str”有问题,如果是结构体变量中的字符串变量,试试p[i].str看看吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
江苏宿迁到四川乐山有多远 ?
盐城市大丰区公安局新丰派出所办公位置在哪啊
航空制造技术这个期刊怎么样
栎粤语怎么读
乐的组词有哪些词语
大丰港边防派出所地址在什么地方?想过去办事
对下面文段中划线词的解释有错误的一项是(3
---Jack can't concentrate on his study rec
竹港派出所地址在什么地方?想过去办事
单选题下列各设备中,将机械能转化为电能的是
东风本田xrv的车子钥匙开关怎么开到没反应怎
如何设置自定义背景图,我想设置一些独特的个
米粉卡是如何计费的?
人眼睛能看见物体是因为A.物体一定是光源B.人
单选题溶液一定是A.液体B.化合物C.纯净物D.混
推荐资讯
家家乐热水器显示器只显示15度水温也上不去去
单选题When I saw Jane, I&n
再见了互相嫌弃的老同学是什么歌
在学乐乐里学音乐怎样收费?
A new film on TV next week .A. showB. is
已知集合A={x| x2-mx+m2-19=0},B={y|y2-5y+6
髋骨在哪个位置示意图
单选题关于海洋的叙述正确的是A.太平洋的面积
山西晋中平遥的名人作文
面对面快传为什么一个是连热点一个是扫二维码
FGO金苹果怎么获得 黄金果实有什么用
电影2次曝光到底说的什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?