Comparer deux string
Résolu
roubalist21
-
roubalist21 -
roubalist21 -
Bonjour,
voici le code:
il y'a des valeurs de tabS qui ressemble exactement à tabDF mais jamais la condition "if" n'est verifié, j'ai beau essayé la même procédure dans un code à part, et ça marche parfaitement.
le tableau tabS c'est un tableau char **tabS une dimension mais de chaine de caractère, le deuxième tabDF c'est un char ***tabDF deux dimensions chaine de caractère .
merci pour toute suggestion.
voici le code:
for(i=0;i<maxDF;i++) { for(j=1;j<(maxS+1);j++) { if(tabDF[i][j]!=NULL) { for(k=0;k<=fins;k++) { if(tabDF[i][j]==tabS[k]) { y=1; } } if(y==0) { tabS[fins]=tabDF[i][j]; fins++; } y=0; } } }
il y'a des valeurs de tabS qui ressemble exactement à tabDF mais jamais la condition "if" n'est verifié, j'ai beau essayé la même procédure dans un code à part, et ça marche parfaitement.
le tableau tabS c'est un tableau char **tabS une dimension mais de chaine de caractère, le deuxième tabDF c'est un char ***tabDF deux dimensions chaine de caractère .
merci pour toute suggestion.
A voir également:
- Python comparer deux string
- Citizen code python avis - Accueil - Outils
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux whatsapp sur un téléphone - Guide
3 réponses
Bonjour,
La comparaison entre deux chaînes de caractères ne se fait pas avec le double égal (comparaison des adresses mémoires), mais avec la fonction strcmp.
Par exemple : if(strcmp(tabDF[i][j],tabS[k])==0) { /*alors c'est égal*/}
Cdlt,
La comparaison entre deux chaînes de caractères ne se fait pas avec le double égal (comparaison des adresses mémoires), mais avec la fonction strcmp.
Par exemple : if(strcmp(tabDF[i][j],tabS[k])==0) { /*alors c'est égal*/}
Cdlt,
oui mais ça ne marche pas non plus le strcmp, et pour le double égale je ne suis pas sûr que ça compare les adresses parceque ca a marcher dans code que j'ai testé à part
oui mais ça ne marche pas non plus le strcmp
C'est que tu l'utilises mal ou qu'il y a une erreur plus haut dans ton code. Car c'est comme ça qu'on compare en C deux chaînes.
Il faudrait voir ton code en entier. Car s'il y a des caractères genre "\n" de stocker dans tes chaînes, c'est normal que ça foire la comparaison. Poste ton code ici.
et pour le double égale je ne suis pas sûr que ça compare les adresses parceque ca a marcher dans code que j'ai testé à part
Montre le code que tu as testé à part. Il suffit que les deux chaînes pointent sur la même adresse pour qu'on ait l'impression que ça compare les caractères. Mais en tout cas, ça compare les adresses mémoires lorsqu'on compare deux chaînes de caractères.
C'est que tu l'utilises mal ou qu'il y a une erreur plus haut dans ton code. Car c'est comme ça qu'on compare en C deux chaînes.
Il faudrait voir ton code en entier. Car s'il y a des caractères genre "\n" de stocker dans tes chaînes, c'est normal que ça foire la comparaison. Poste ton code ici.
et pour le double égale je ne suis pas sûr que ça compare les adresses parceque ca a marcher dans code que j'ai testé à part
Montre le code que tu as testé à part. Il suffit que les deux chaînes pointent sur la même adresse pour qu'on ait l'impression que ça compare les caractères. Mais en tout cas, ça compare les adresses mémoires lorsqu'on compare deux chaînes de caractères.