为了账号安全,请及时绑定邮箱和手机立即绑定

您好,在Strcmp函数中flag的作用是什么?有什么特殊含义么

您好,在Strcmp函数中flag的作用是什么?有什么特殊含义么

胡子哥哥 2021-07-07 10:07:03
我编写一个判断一学生是否属于一班级的程序,如下:#define MAX 5#define LEN 10main(){int i;char name[LEN];static char list [MAX][LEN]={"Zhang","Wang","Li","Tan","Ling"};printf("Enter your name:");gets(name);for(i=0;i<MAX;i++)if(strcmp(list[i],name)==0)printf("%s is in our class\n",name);elseprintf("%s is not in our class\n",name);}编译没有错误,但在执行时,结果显示:Enter your name: ZhangZhang is in our classZhang is not in our classZhang is not in our classZhang is not in our classZhang is not in our classPress any key to continue请问这是什么原因?书上的原程序是:#define MAX 5#define LEN 10main(){int i,flag=0;char name[LEN];static char list [MAX][LEN]={"Zhang","Wang","Li","Tan","Ling"};printf("Enter your name:");gets(name);for(i=0;i<MAX;i++)if(strcmp(list[i],name)==0)flag==1;if(flag==1)printf("%s is in our class\n",name);elseprintf("%s is not in our class\n",name);}和我自己编写的差别是多加了flag,请问这个flag是什么作用?是编写strcmp这个比较功能的函数时必须使用的吗?
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

flag的作用就是标志着我们是否找到我们输入的名字。
你看flag被初始化为0,意思就是在查找之前呢,我们默认是没找到的。
当strcmp返回0,表示字符数组中有一个字符和我们输入的相同,那么不就是找到了吗?然后我们就把flag设置成0.
那么接着我们再判断flag的值就可以知道我们是否找到字符串了。

查看完整回答
反对 回复 2021-07-11
  • 3 回答
  • 0 关注
  • 342 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信