8.2 检查一个字符串是否匹配某个值时出错

我在检查一个字符串是否跟某个值匹配。

为什么这样不行?

char *string;

. . .

if(string == "value"){

/*string matches ”value” */

. . .

}

C中的字符串用字符的数组表示, 而C语言从来不会把数组作为一个整体操作(赋值, 比较等)。

上面代码段中的==操作符比较的是两个指针—— 指针变量string 的值和字符串常数“value” 的指针值—— 看它们是否相等,

也就是说,

看它们是否指向同一个位置。

它们可能并不相等, 所以比较决不会成功。

要比较两个字符串,

一般使用库函数strcmp():

if(strcmp(string, "value") == 0) {

/* string matches "value" */

}

永不止步步 发表于01-16 14:38 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号