一般而言,我们习惯用一个字符数组用来存储一个字符串。
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.
注意:
如果是字符串指针,首先要判断指针是否为空,否则容易造成段错误。
养成良好变成习惯,定义变量后首先要初始化。

本文介绍了如何在C语言中正确地定义和初始化字符数组或指针以存储字符串,并强调了初始化的重要性,避免出现随机值。通过`memset`初始化字符串为零,然后可以使用`strlen`函数检查字符串是否为空。此外,还提醒读者在处理字符串指针时,首先要确保指针不为空,以防止段错误。良好的编程习惯,如变量初始化,对于代码的稳定性和安全性至关重要。
1350

被折叠的 条评论
为什么被折叠?



