histoire de pointeur - C - Programmation
Marsh Posté le 25-06-2004 à 14:06:03
le problème de noob c'est que tu as pas lu la documentation de strcmp
Marsh Posté le 25-06-2004 à 14:06:39
une solution : lis ça
Marsh Posté le 25-06-2004 à 14:09:16
si si j'ai lu, j'ai le prototype devant les yeux ...
int strcmp(const char * chaine1, const char * chaine2) et fournit NULL si les deux chaines sont les mêmes
Marsh Posté le 25-06-2004 à 14:11:06
ReplyMarsh Posté le 25-06-2004 à 14:14:55
euh pardon c'est un assimilation de débutant que j'ai faite ... 0 = NULL pour moi (enfin avant)
Marsh Posté le 25-06-2004 à 14:16:45
mirascheat a écrit : euh pardon c'est un assimilation de débutant que j'ai faite ... 0 = NULL pour moi (enfin avant) |
ben t'es mal partit ...
bon allez, vire ce strcmp et regarde si s[0] == '\0' ça sera plus simple
Marsh Posté le 25-06-2004 à 14:20:13
Juste une question je pensais qu'on ne pouvait pas faire de test genre == sur des chaines de caracteres ?
Et je viens de me rendre compte que mon strtok ne me renvoyait pas "" mais "\0" ...
Marsh Posté le 25-06-2004 à 14:20:58
mirascheat a écrit : Juste une question je pensais qu'on ne pouvait pas faire de test genre == sur des chaines de caracteres ? |
s[0] c'est un char, pas un char*
Marsh Posté le 25-06-2004 à 14:21:39
parce que s[0] c'est une chaine de caractères ?
si tu veux t'aider, raisonne au niveau des types : identifie le type exact de chaque partie d'une expression (int, pointeur de char, fonction, etc) et t'auras déjà fait la moitié du boulot
Marsh Posté le 25-06-2004 à 14:24:59
ok donc on peut faire une comparaison de type == sur un caractère mais pas sur chaine de caractere ...
Et il ya une solution avec un strcmp ?
Marsh Posté le 25-06-2004 à 14:27:52
oui, l'utiliser correctement et s'y fier.
sinon y a pas de chaine de caractères à proprement dite en C, alors le == pas pour les string, d'accord, mais peut-être que tu ne comprends pas pourquoi
Marsh Posté le 25-06-2004 à 14:32:15
non c'est vrai je ne sais pas (je me doute que c'est parce qu'un caractere à un nombre ANSI correspondant et que c'est ce nombre qu'om compare mais je n'en suis vraiment pas sur)
Marsh Posté le 25-06-2004 à 14:02:43
Bonjour,
J'ai une chaine de caractère qui peut être de la forme suivante : ",,,,," (une suite de virgules)
Je fais un strtok sur cette chaine avec le délimiteur ",", je devrais donc obtenir une chaine vide "".
Pour tester cette chaine vide je fais une comparaison :
if(strcmp(le resultat du strtok, "" ) != NULL)
sauf que je suis entrain de comparer une chaine de caracteres avec un pointeur ... et voilà le pb du n00b (j'ai essayé *le résultat du strtok, mais ca ne marche pas :-( )
merci pour votre aide.