59-C++C-风格字符串的比较

本文详细介绍了在C++中如何使用strcmp函数来比较C风格字符串。讲解了strcmp函数的工作原理,如何判断字符串的相等性或排列顺序,并提供了一个示例程序展示其用法。此外,还提到了字符变量的递增运算符在处理字符串时的应用。
摘要由CSDN通过智能技术生成

                                  C-风格字符串的比较

假设要直到字符数组中的字符串都不是mate。如果word是数组名,下面的测试可能并不能像我们预想的那样工作:

word == “mate”

请记住,数组名是数组的地址。同样,用引号括起的字符串常量也是其地址。因此,上面的关系表达式不是判断两个字符串是否相同,而是查看它们是否存储在相同的地址上,两个字符串的地址是否相同呢?答案是否定的,虽然它们包含相同的字符。

由于C++将C-风格字符串视为地址,因此如果使用关系运算符来比较它们,将无法得到满意的结果。相反,应使用C-风格字符串库中的strcmp()函数来比较。该程序接受两个字符串地址作为参数。这意味着参数可以是指针,字符串常量或字符数组名。如果两个字符串相同,该函数将返回零;如果第一个字符串按字母顺序排在第二个字符串之前,则strcmp()将返回一个负数值;如果第一个字符串按字母顺序排在第二个字符串之后,则strcmp()将返回一个正数值。实际上,“按系统排列顺序“比“按字母顺序”更准确。这意味着字符是根据字符的系统编码来进行比较的。例如,使用ASCII码时,所有大写字母的编码都比小写字母小,所以按排列顺序,大写字母将位于小写字母之前。因此,字符串“Zoo”咋字符串”aviary”之前,根据编码进行比较还以为着大写字母和小写字母是不同的,因此字符串”FOO”和字符串”foo”不同。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值