中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-30 22:26
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 求救:关于C语言IF的问题 查看 1,103 回复 6
楼 主 求救:关于C语言IF的问题 发表于 2006-12-11 23:51 ·  中国 广东 中山 电信
新手上路
积分 6
发帖 2
注册 2006-12-06 23:23
19年会员
UID 72759
性别 男
状态 离线
我要比较字符串,下面有两种写法,第一种可以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 发表于 2006-12-14 23:21 ·  中国 广东 中山 电信
新手上路
积分 6
发帖 2
注册 2006-12-06 23:23
19年会员
UID 72759
性别 男
状态 离线
没有人知道吗?
3 发表于 2006-12-17 09:03 ·  中国 上海 普陀区 电信
新手上路
积分 6
发帖 2
注册 2006-12-15 08:10
19年会员
UID 73596
性别 男
状态 离线
你改成这样试试看 if ((strcmp(ct->shortname, cmd) == 0) ||( strcmp(ct->fullname, cmd) == 0)) break;
4 发表于 2006-12-19 12:09 ·  中国 河北 保定 联通
初级用户
积分 21
发帖 28
注册 2006-12-15 10:55
19年会员
UID 73612
性别 女
状态 离线
ding ding
5 发表于 2006-12-19 12:10 ·  中国 河北 保定 联通
初级用户
积分 21
发帖 28
注册 2006-12-15 10:55
19年会员
UID 73612
性别 女
状态 离线
ding
6 发表于 2006-12-19 12:10 ·  中国 河北 保定 联通
初级用户
积分 21
发帖 28
注册 2006-12-15 10:55
19年会员
UID 73612
性别 女
状态 离线
顶 顶
7 这种可取! 发表于 2006-12-22 03:04 ·  中国 广东 东莞 电信
初级用户
积分 69
发帖 14
注册 2006-10-18 21:09
19年会员
UID 66505
状态 离线
Originally posted by Greentea107 at 2006-12-17 09:03:
你改成这样试试看 if ((strcmp(ct->shortname, cmd) == 0) ||( strcmp(ct->fullname, cmd) == 0)) break;


支持楼上的意见!你的第二种写法是错误的,
“||” 两边的表达式应该用括号括起来
论坛跳转: