Comparaison d'avertissement entre le pointeur et l'entier
J'obtiens une erreur lorsque je me parcourir le pointeur de caractère et de vérifier lorsque le pointeur atteint le terminateur null.
const char* message = "hi";
//I then loop through the message and I get an error in the below if statement.
if (*message == " const char* message = "hi";
//I then loop through the message and I get an error in the below if statement.
if (*message == "\0") {
...//do something
}
") {
...//do something
}
L'erreur que je reçois est:
warning: comparison between pointer and integer
('int' and 'char *')
Je pensais que le *
en face de message
déréférence message, j'obtiens la valeur de l'endroit où le message de points? Je ne veux pas utiliser une fonction de la bibliothèque strcmp
par la voie.
source d'informationauteur catee | 2015-09-10
Vous devez vous connecter pour publier un commentaire.
Il devrait être
En C, de simples citations délimiter un caractère unique alors que les guillemets sont pour les chaînes.
Ce:
"\0"
est une chaîne de caractères, pas un personnage. Un personnage utilise des guillemets simples, comme'\0'
.Dans cette ligne ...
... comme vous pouvez le voir dans l'avertissement ...
... vous sont effectivement en comparant un
int
avec unchar *
ou plus précisément, unint
avec une adresse à unchar
.Pour résoudre ce problème, appliquez l'une des opérations suivantes:
Sur une note de côté, si vous souhaitez comparer des chaînes de caractères que vous devez utiliser
strcmp
oustrncmp
trouvé dansstring.h
.