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