Strcmp
Ninja
-
Ninja -
Ninja -
Bonjour,
J'ai un code qui, quand on entre deux mots vous dit si ils sont identiques ou non mais il m'affiche toujours qu'ils sont différents.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char chaine1[] = {0};
char chaine2[] = {0};
printf("Entrez deux chaines.\n");
scanf("%s",&chaine1);
scanf("%s",&chaine2);
if(strcmp(chaine1,chaine2)==0)
{
printf("Les chaines sont identiques");
}
else
{
printf("Les chaines sont differentes");
}
return 0;
}
J'ai un code qui, quand on entre deux mots vous dit si ils sont identiques ou non mais il m'affiche toujours qu'ils sont différents.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char chaine1[] = {0};
char chaine2[] = {0};
printf("Entrez deux chaines.\n");
scanf("%s",&chaine1);
scanf("%s",&chaine2);
if(strcmp(chaine1,chaine2)==0)
{
printf("Les chaines sont identiques");
}
else
{
printf("Les chaines sont differentes");
}
return 0;
}
1 réponse
Bonjour,
Une chaîne de caractère doit être stockée dans un tableau suffisamment grand pour contenir le texte + le caractère terminateur.
Les
Une chaîne de caractère doit être stockée dans un tableau suffisamment grand pour contenir le texte + le caractère terminateur.
Les
chaine1et
chaine2que tu as créées ne peuvent contenir qu'un seul caractère (le terminateur), donc on ne peut y mettre que zéro caractère.
scanfn'a aucun moyen de te prévenir d'une saisie trop longue, il se produit un "undefined behavior" qui peut faire planter l'application ou produire des résultats bizarre. C'est pourquoi on recommande de ne jamais utiliser
scanfpour des chaines.
Ninja
Merci Dalfab, mon programme fonctionne !