一般而言,我们习惯用一个字符数组用来存储一个字符串。
char str_array[LEN];
或者malloc一段内存来存储一个字符串
char * str_ptr = (char*) malloc (LEN*sizeof(char));
定义了数组或字符指针之后,需要做一个初始化,否则里面将是随机值,以后将无法判断改字符串是否为空。
所以,首先要保证字符串初始化为空
memset(str_ptr,'\0',sizeof(LEN*sizeof(char)));
对于已经初始化过的字符串,我们就可以通过strlen来判断是否为空了。
strlen()从字符串第0个字符开始计算,遇到字符\0停止,得到字符串长度,如果长度为0,则字符串为空。
不论是对于常量字符串 const char* hi_str = "Hi str";
还是对于字符串变量 char * str;
我们都是可以用
if (str != NULL) {
if (strlen(str) == 0) {
// it is empty string
}
}
来判断。
避免使用 if (str[0] == '\0') 来判断,因为可能导致crash.
注意:
-
如果是字符串指针,首先要判断指针是否为空,否则容易造成段错误。
-
养成良好变成习惯,定义变量后首先要初始化。