histoire de pointeur

histoire de pointeur - C - Programmation

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.

Reply

Marsh Posté le 25-06-2004 à 14:02:43   

Reply

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

Reply

Marsh Posté le 25-06-2004 à 14:06:39    

une solution : lis ça
http://images-eu.amazon.com/images/P/2100051164.08.LZZZZZZZ.jpg


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 25-06-2004 à 14:07:12    

j'ai bien envie d'avoir ça en smiley tient :D

Reply

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

Reply

Marsh Posté le 25-06-2004 à 14:11:06    

pardon ?
strcmp retourne 0 si les chaines sont égales


---------------
http://runnerstats.net
Reply

Marsh 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)

Reply

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

Reply

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" ...

Reply

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 ?
Et je viens de me rendre compte que mon strtok ne me renvoyait pas "" mais "\0" ...

s[0] c'est un char, pas un char*


---------------
http://runnerstats.net
Reply

Marsh Posté le 25-06-2004 à 14:20:58   

Reply

Marsh Posté le 25-06-2004 à 14:21:09    

mais là c'est une comparaison de caractère

Reply

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

Reply

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 ?


Message édité par mirascheat le 25-06-2004 à 14:25:47
Reply

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

Reply

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)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed