簡體   English   中英

如何檢查 char* 變量是否指向空字符串?

[英]How can I check if char* variable points to empty string?

如何檢查char*變量是否指向空字符串?

檢查第一個字符是否為'\\0'。 您可能還應該檢查您的指針是否為 NULL。

char *c = "";
if ((c != NULL) && (c[0] == '\0')) {
   printf("c is empty\n");
}

您可以將這兩項檢查放在一個函數中,以方便且易於重用。

編輯:在 if 語句中可以這樣讀,“如果 c 不為零並且字符數組 'c' 的第一個字符不是 '\\0' 或零,則...”。

&&簡單地結合了兩個條件。 基本上就像這樣說:

if (c != NULL) { /* AND (or &&) */
    if (c[0] == '\0') {
        printf("c is empty\n");
    }
}

如果您不清楚,您可能想要一本好的 C 編程書。 我可以推薦一本名為“C 編程語言”的書。

與上述等效的最短版本是:

if (c && !c[0]) {
  printf("c is empty\n");
}

我的首選方法:

if (*ptr == 0) // empty string

可能更常見:

if (strlen(ptr) == 0) // empty string

檢查指針是否為NULL ,然后使用strlen查看它是否返回0
NULL檢查很重要,因為將NULL指針傳遞給strlen調用Undefined Behavior

空字符串有一個空字節。 所以測試if (s[0] == (char)0)

if (!*ptr) { /* empty string  */}

相似地

if (*ptr)  { /* not empty */ }

我更喜歡使用 strlen 函數,因為庫函數是以最好的方式實現的。

所以,我會寫 if(strlen(p)==0) //Empty string

給它一個機會:

嘗試通過函數 gets(string) 獲取字符串然后檢查條件 if(string[0] == '\\0')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM