Comparaison de char - C - Programmation
Marsh Posté le 11-10-2006 à 19:02:40
il manque pas un caractere speciale devant ou derriere ta variable varname dans l'appel à strcmp ? c'est un pointeur donc ....
Marsh Posté le 11-10-2006 à 21:12:57
circeedevalette a écrit : int main (int ac, char *av[]) |
On nomme généralement les arguments de main "argc" et "argv". Mais ce n'est qu'une convention et tu peux leur donner le nom que tu veux.
circeedevalette a écrit : J'ai essayé la plus simple : varname == "TIME" |
Là tu ne compares que 2 pointeurs...
circeedevalette a écrit : j'ai aussi essayé strcmp(varname,"TIME" ) |
Si t'as écrit
if (strcmp(varname, "TIME" )) |
Ben c'est normal. Quand les chaînes sont égales, la fonction renvoie 0 (d'où la remarque de Taz). Donc si elles sont égales, le "if" verra "if (0)" et considèrera le test comme faux !!!
if (strcmp(varname, "TIME" ) == 0) |
Marsh Posté le 12-10-2006 à 00:46:09
circeedevalette a écrit :
|
Marsh Posté le 12-10-2006 à 09:40:49
Emmanuel Delahaye a écrit :
|
yes, merci pour avoir aidé un boulet !!
ca faisait une heure que je tournais dans tous les sens et j'avais plus les idées assez claires.
Marsh Posté le 11-10-2006 à 18:54:25
Bonjour,
j'ai pas fait de C depuis 5 ans alors je galere pour modifier un petit exe...
j'ai une variable varname qui me permet de recupere une parametre de ma fonction.
int main (int ac, char *av[]) {
char *varname;
varname = av[2];
if (comparaison) {
traitement1
} else {
}
...
}
En fonction de la valeur de cette variable, je dois faire un traitement ou un autre.
J'ai essayé plusieurs facon de faire ma comparaison mais aucune ne marche
J'ai essayé la plus simple : varname == "TIME"
j'ai aussi essayé strcmp(varname,"TIME" )
Mais je passe toujours dans le cas 2 meme si j'ai bien TIME en entrée.
vous pouvez m'aider ?