繁体   English   中英

如何在C ++中将const char *与字符串进行比较?

[英]How to compare const char* with a string in C++?

我正在使用C ++,并且正在尝试比较字符串。

以下是我的代码,该代码让我恢复了const char* -

    const char* client_id() const {
        return String(m_clientPos);
    }

现在我正在比较这样的字符串-

cout<<client_ptr->client_id()<< endl;
if (strcmp(client_ptr->client_id(), "Hello")) {
    ..
} else {
    ..
}

但是它永远不会进入if语句。 但是我的cout可以正确打印出Hello 我做错什么了吗?

您需要执行if (0 == strcmp(...

参见http://www.cplusplus.com/reference/cstring/strcmp/

strcmp

返回一个整数值,指示字符串之间的关系:零值表示两个字符串相等。 大于零的值表示不匹配的第一个字符在str1中的值大于在str2中的值; 小于零的值表示相反的意思。

它永远不会进入if语句。

当字符串相同时, strcmp函数将返回零,因此,当两个字符串彼此相等时,您应该看到代码击中else分支。

  • 零值表示两个字符串相等。
  • 大于零的值表示不匹配的第一个字符在str1中的值大于在str2中的值;
  • 小于零的值表示相反的意思。

由于String看起来不像内置类,并且假定您可以访问其源代码,因此最好将与const char*的比较作为String类的成员函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM