c语言 if中嵌套strcmp函数,比较字符串 不报错 但是有部分可能不执行 求大神指教
c语言if中嵌套strcmp函数,比较字符串编译不报错但是strcmp函数部分可能不执行求大神指教调试结果如图所示不管输入任何路线总会显示要删除的路线不存在利用查询功能可...
c语言 if中嵌套strcmp函数,比较字符串 编译不报错 但是strcmp函数部分可能不执行 求大神指教
调试结果如图所示 不管输入任何路线 总会显示要删除的路线不存在
利用查询功能可以查到该线路 但是删除的时候无法实现 展开
调试结果如图所示 不管输入任何路线 总会显示要删除的路线不存在
利用查询功能可以查到该线路 但是删除的时候无法实现 展开
展开全部
输入待删除公交站名时用scanf("%s", busname);
然后在调用strcmp之前输出下busname看下是不是跟输入的一样:printf("%s\n", busname);
在判断if(strcmp(bus[i].name, busname)==0)的语句块的最后需要加一行break;否则i还要继续遍历,最终还得输出“不存在”
嗯,参考White_MouseYBZ注意到的if后的分号,需要检查下你的bus_number是不是赋值不对啊,if后的分号会导致for中输出bus_number次信息的,现在一个都没有很可能是bus_number不对。
然后在调用strcmp之前输出下busname看下是不是跟输入的一样:printf("%s\n", busname);
在判断if(strcmp(bus[i].name, busname)==0)的语句块的最后需要加一行break;否则i还要继续遍历,最终还得输出“不存在”
嗯,参考White_MouseYBZ注意到的if后的分号,需要检查下你的bus_number是不是赋值不对啊,if后的分号会导致for中输出bus_number次信息的,现在一个都没有很可能是bus_number不对。
更多追问追答
追问
分号去掉依旧不对 用了printf,输入和输出信息一致
bus_number应该是没问题的 因为查询功能可以实现
追答
你在for循环前输出下*bus_number,貌似应该是0,否则不会出现这样的输出;同时各个case最后要加break的哈,否则你最后一只走到default,直接return了,你就没法save啦。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大哥,你这个输入的可是中文呀!这个要注意!
有可能是会是数组结尾处\n之类的问题。
你可以调试到if(strcmp(bus[i].name,busname)==0)这句,
在内存中仔细看看两者是否一样。
有可能是会是数组结尾处\n之类的问题。
你可以调试到if(strcmp(bus[i].name,busname)==0)这句,
在内存中仔细看看两者是否一样。
追问
用printf看输入和输出信息是一样的
你说的在内存中看两者是否一致是什么意思
追答
你确定是一模一样吗?没有多一个空格或者?什么的吗?
我觉得可能中文最后多了一个空格。
你可以前后加一个字符如:printf("a%sa",...);看看是否一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要冤枉了“if中嵌套strcmp函数”,你看看你为什么要在if(strcmp(bus[i].name,busname)==0)后加一个分号呢?错误根子就在这里!
更多追问追答
追问
手残打错了 跟这个没关系 去掉了依旧不解决问题
追答
那你的if体中怎么看不到break之类的退出循环语句呢?不退出就要遍历到i=*bus_number才停止,后面的if(i==*bus_number)不是就正中下怀输出“要删除的路线不存在”了?所以你的判断逻辑上还有些问题!找到了要删除的线路就应该跳出循环才是……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-07-15
展开全部
SP_CONFIGURE 'SHOW ADVANCED OPTIONS',1
RECONFIGURE
EXEC SP_CONFIGURE 'Ad Hoc Distributed Queries',1
RECONFIGURE
插入的代码:
INSERT INTO dbo.Resources(ResourcesUrl,ResourcesLink,ResourcesText) SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=YES;Database=F:\Book1.xls', [sheet1$])
RECONFIGURE
EXEC SP_CONFIGURE 'Ad Hoc Distributed Queries',1
RECONFIGURE
插入的代码:
INSERT INTO dbo.Resources(ResourcesUrl,ResourcesLink,ResourcesText) SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=YES;Database=F:\Book1.xls', [sheet1$])
追问
这是……什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
name里原先有值吗?
更多追问追答
追问
bus[i].name 中储存有值 可以利用查询功能验证 busname 是刚刚输入的要删除的路线名称
追答
你把代码私信发给我。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询