簡體   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