El lenguaje C juzga que la cadena está vacía

Original: https://blog.csdn.net/selina8921/article/details/79176297

En términos generales, estamos acostumbrados a usar una matriz de caracteres para almacenar una cadena.

char str_array [LEN];

O malloc un pedazo de memoria para almacenar una cadena

char * str_ptr = (char *) malloc (LEN * sizeof (char));

Después de definir la matriz o el puntero de carácter, debe realizar una inicialización; de lo contrario, será un valor aleatorio y no podrá determinar si la cadena modificada está vacía en el futuro.

Entonces, en primer lugar, asegúrese de que la cadena se inicialice en vacío

memset (str_ptr, '\ 0', sizeof (LEN * sizeof (char)));

Para una cadena que se ha inicializado, podemos usar strlen para determinar si está vacía.

strlen () comienza a contar desde el carácter 0 de la cadena y se detiene cuando encuentra el carácter \ 0 y obtiene la longitud de la cadena. Si la longitud es 0, la cadena está vacía.

Independientemente de la cadena constante const char * hi_str = "Hi str";

O para las variables de cadena char * str;

Todos podemos usar

if (str! = NULL) {

if (strlen(str) == 0) {

    // it is empty string

}

}

Juzgar.

Evite usar if (str [0] == '\ 0') para juzgar, porque puede causar un bloqueo.

Nota:
Si se trata de un puntero de cadena, primero determine si el puntero está vacío, de lo contrario, es fácil provocar una falla de segmentación.
Desarrolle un buen hábito y primero inicialice la variable después de definirla

Supongo que te gusta

Origin blog.csdn.net/xiaolei251990/article/details/84583453
Recomendado
Clasificación