Comparer 2 string en C - Programmation
Marsh Posté le 06-12-2001 à 08:26:45
juste apres tes deux declarations fait un memset(back_fichier, 0, 10); et un memset(temp, 0, 10);
Le pb c'est que tu n'as pas initialise les deux tableaux de caracteres, donc il ne trouve pas le "\0" qui indique la fin de ta chaine.
Marsh Posté le 06-12-2001 à 08:27:29
ou alors char back_fichier[10] = {0} et char temp[10] = {0}, ca devrait donner le meme resultat que memset...
Marsh Posté le 06-12-2001 à 09:29:31
on peut pas t'aider si on ne sait pas ce que courant3->nom_fichier représente
Marsh Posté le 06-12-2001 à 10:38:46
Et combien vaut cpt2 au fait?
A+,
Marsh Posté le 06-12-2001 à 10:44:14
jupiler a écrit a écrit : on peut pas t'aider si on ne sait pas ce que courant3->nom_fichier représente |
je pense que ca doit qu'il a du faire une liste chainee.
Marsh Posté le 06-12-2001 à 10:59:35
Godbout a écrit a écrit : je pense que ca doit qu'il a du faire une liste chainee. |
c'est ce que je pense aussi, mais l'erreur vient peut-etre de là et pas du strcmp
Marsh Posté le 06-12-2001 à 11:29:58
jupiler a écrit a écrit : c'est ce que je pense aussi, mais l'erreur vient peut-etre de là et pas du strcmp |
Ben c'est pratiquement sur que sans initialise ses char ca va pas marcher.
Strcmp va jamais trouver les \0, il va faire nimp (enfin je pense).
Marsh Posté le 06-12-2001 à 11:32:50
Godbout a écrit a écrit : Ben c'est pratiquement sur que sans initialise ses char ca va pas marcher. Strcmp va jamais trouver les \0, il va faire nimp (enfin je pense). |
ils sont initialisés puisqu'il a fait un strcpy sur chacun
mais "strcpy(temp, courant3->nom_fichier) " ca ne donnera rien de bon si "courant3->nom_fichier" est NULL par exemple
Marsh Posté le 06-12-2001 à 11:33:32
Godbout a écrit a écrit : Ben c'est pratiquement sur que sans initialise ses char ca va pas marcher. Strcmp va jamais trouver les \0, il va faire nimp (enfin je pense). |
Le strcpy le copie normalement...
Marsh Posté le 06-12-2001 à 11:35:18
ok, personnelement j'prefere prevenir que guerir, j'intialise tout pour etre sur.
Marsh Posté le 06-12-2001 à 11:36:24
Godbout a écrit a écrit : ok, personnelement j'prefere prevenir que guerir, j'intialise tout pour etre sur. |
pareil, mais le pb ne vient pas de là à mon avis
Marsh Posté le 06-12-2001 à 13:53:24
L'objet chaîne de courant3->nom_fichier, y a bien un zéro terminal au bout ? C'est pas un bloc "brut" (zone mémoire)?
Et en inversant les strcpy, ça fait quoi ? Y a courant3->nom_fichier dans back_fichier ?
Marsh Posté le 06-12-2001 à 13:56:27
et si on avait la valeur de cpt2, ca donnerait une idee de ce qui est en cause.
A+,
Marsh Posté le 06-12-2001 à 04:12:39
char back_fichier[10];
char temp[10];
...
strcpy(back_fichier, ".." );
strcpy(temp, courant3->nom_fichier);
cpt2 = strcmp(back_fichier, temp);
if(cpt2 == 0)
{
...
}
On dirait que mon code ne marche pas. Je mets une Watches sur back_fichier et on voit : ".." J'en mets aussi une sur temp et on voit la meme chose !! ( ".." ).
COmment on peut faire pour comparer 2 string ?????