[英]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
分支。
由于String
看起来不像内置类,并且假定您可以访问其源代码,因此最好将与const char*
的比较作为String
类的成员函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.