Comparer 2 string en C

Comparer 2 string en C - Programmation

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 ?????

Reply

Marsh Posté le 06-12-2001 à 04:12:39   

Reply

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.

Reply

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

Reply

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


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 06-12-2001 à 10:38:46    

Et combien vaut cpt2 au fait?  
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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.

Reply

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


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

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

Reply

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


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

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

Reply

Marsh Posté le 06-12-2001 à 11:33:32   

Reply

Marsh Posté le 06-12-2001 à 11:35:18    

ok, personnelement j'prefere prevenir que guerir, j'intialise tout pour etre sur.

Reply

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


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

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  :) ?

Reply

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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