[英]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.