中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 21:00
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 求救:关于C语言IF的问题
可打印版本  1,271 / 6
第1楼 eastson 发表于 2006-12-11 23:51
新手上路 发帖 2 积分 6
求救:关于C语言IF的问题
我要比较字符串,下面有两种写法,第一种可以break,第二种就不行。我想请教第二种为什么不行?

条件是:ct->fullname = "chdir", ct->shortname = "cd", cmd = "cd"

第一种写法(可以):
if (strcmp(ct->shortname, cmd) == 0)
break;
else if (strcmp(ct->fullname, cmd) == 0)
break;

第二种写法(不可以):
if (strcmp(ct->shortname, cmd) == 0 || strcmp(ct->fullname, cmd) == 0) break;

[ Last edited by eastson on 2006-12-11 at 11:07 AM ]
第2楼 eastson 发表于 2006-12-14 23:21
新手上路 发帖 2 积分 6
没有人知道吗?
第3楼 Greentea107 发表于 2006-12-17 09:03
新手上路 发帖 2 积分 6
你改成这样试试看 if ((strcmp(ct->shortname, cmd) == 0) ||( strcmp(ct->fullname, cmd) == 0)) break;
第4楼 lisiyuan 发表于 2006-12-19 12:09
初级用户 发帖 28 积分 21
ding ding
第5楼 lisiyuan 发表于 2006-12-19 12:10
初级用户 发帖 28 积分 21
ding
第6楼 lisiyuan 发表于 2006-12-19 12:10
初级用户 发帖 28 积分 21
顶 顶
第7楼 phyfer 发表于 2006-12-22 03:04
初级用户 发帖 14 积分 69
这种可取!
Originally posted by Greentea107 at 2006-12-17 09:03:
你改成这样试试看 if ((strcmp(ct->shortname, cmd) == 0) ||( strcmp(ct->fullname, cmd) == 0)) break;


支持楼上的意见!你的第二种写法是错误的,
“||” 两边的表达式应该用括号括起来
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023