| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 1344 人关注过本帖
标题:字符串比较
收藏  订阅  推荐  打印 
yole
Rank: 2
等级:注册会员
帖子:46
积分:610
注册:2008-7-10
字符串比较

在C中实现字符串比较的方法有哪些?
  想判断 字符串变量s与字符串"abcd"是否相等


我知道可以是if(strcmp(s,"a168"))
             …………

还能用其它的方法吗?
  为什么if(s=="a168")算是错的呢?



求解,谢谢!
搜索更多相关主题的帖子: 字符  
2008-7-11 17:45
水中无月
Rank: 2
等级:注册会员
帖子:186
积分:1992
注册:2008-6-17

因为字符串如果相等将会返回0,所以你上面写的是错的
应该要这样: if(strcmp(s, "a168") == 0)

还有strncmp()可以实现类似功能

十里平湖霜满天,寸寸青丝愁华年,对月形单望相互,只羡鸳鸯不羡仙.
2008-7-11 17:48
mqh21364
Rank: 4
等级:高级会员
帖子:638
积分:6970
注册:2008-2-28

C语言里面字符串用==比较的可是地址,不是它们的内容。

至于还有什么办法嘛。。。我也不大清楚。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-7-11 17:50
cosdos
Rank: 6Rank: 6
来自:ShangHai
等级:金牌会员
威望:1
帖子:1377
积分:14374
注册:2007-6-19

还有就是自己写代码比较。

—>〉Sun〈<—
2008-7-11 17:52
cosdos
Rank: 6Rank: 6
来自:ShangHai
等级:金牌会员
威望:1
帖子:1377
积分:14374
注册:2007-6-19

字符串是字符数组的地址,这个得明白。

—>〉Sun〈<—
2008-7-11 17:53
水中无月
Rank: 2
等级:注册会员
帖子:186
积分:1992
注册:2008-6-17

mqh21364说的不对哦,“if(strcmp(s, "a168") == 0)”是比较返回值,又不是直接比较字符串地址

十里平湖霜满天,寸寸青丝愁华年,对月形单望相互,只羡鸳鸯不羡仙.
2008-7-11 17:54
cosdos
Rank: 6Rank: 6
来自:ShangHai
等级:金牌会员
威望:1
帖子:1377
积分:14374
注册:2007-6-19

楼上没看清啊

—>〉Sun〈<—
2008-7-11 17:57
水中无月
Rank: 2
等级:注册会员
帖子:186
积分:1992
注册:2008-6-17

我是回复3# mqh21364说的话
他说“C语言里面字符串用==比较的可是地址”
我说是用“==”比较strcmp()函数的返回值是否是0

十里平湖霜满天,寸寸青丝愁华年,对月形单望相互,只羡鸳鸯不羡仙.
2008-7-11 17:59
yole
Rank: 2
等级:注册会员
帖子:46
积分:610
注册:2008-7-10

mqh21364 在 2008-7-11 17:50 的发言:

C语言里面字符串用==比较的可是地址,不是它们的内容。

至于还有什么办法嘛。。。我也不大清楚。
恩啊啊,明白一点。
不过对你说的比较地址有点不明白。
==书上定义:关系运算符,判断此运算符左右两边表达式的值是否相等。

只是判断值,没说要比较什么地址。
如果int a=1,b=2;
还是能比较  if(a==b),显然a,b的地址是不一样的。
2008-7-11 18:02
cosdos
Rank: 6Rank: 6
来自:ShangHai
等级:金牌会员
威望:1
帖子:1377
积分:14374
注册:2007-6-19

水中无月 在 2008-7-11 17:59 的发言:

我是回复3# mqh21364说的话
他说“C语言里面字符串用==比较的可是地址”
我说是用“==”比较strcmp()函数的返回值是否是0
if(s=="a168")  // 比较地址

—>〉Sun〈<—
2008-7-11 18:03
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053533 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved