How can I check if char* variable points to empty string? How can I check if char* variable points to empty string? c c

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


Check if the first character is '\0'. You should also probably check if your pointer is NULL.

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

You could put both of those checks in a function to make it convenient and easy to reuse.

Edit:In the if statement can be read like this, "If c is not zero and the first character of character array 'c' is not '\0' or zero, then...".

The && simply combines the two conditions. It is basically like saying this:

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

You may want to get a good C programming book if that is not clear to you. I could recommend a book called "The C Programming Language".

The shortest version equivalent to the above would be:

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


My preferred method:

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

Probably more common:

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


Check the pointer for NULL and then using strlen to see if it returns 0.
NULL check is important because passing NULL pointer to strlen invokes an Undefined Behavior.