76 votes

Comment puis-je vérifier si la variable char* pointe sur une chaîne vide ?

Comment puis-je vérifier si char* pointe vers une chaîne vide ?

2voto

alvin Points 784
if (!*ptr) { /* empty string  */}

de même

if (*ptr)  { /* not empty */ }

1 votes

@igraczech, hmm, cela devrait fonctionner pour le cas char *str = "" ; if (!*str) { printf("empty \n ") ; }. Ai-je manqué un cas subtil ?

0 votes

Désolé, vous avez raison - c'était mon stupide oubli de pointeur C. J'avais le cas où str pointait sur une adresse contenant ' \0 seulement. Ainsi, le pointeur (*str) était non nul lorsque la valeur (contenu de l'adresse pointée par str) était nulle.

1voto

ikm104 Points 43

Donnez-lui une chance :

Essayez de récupérer la chaîne de caractères via la fonction gets(string) puis vérifiez la condition comme if(string[0] == ' \0 ')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X