wizard512
Messages postés459Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention11 mai 2013
-
29 mai 2009 à 22:14
wizard512
Messages postés459Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention11 mai 2013
-
29 mai 2009 à 22:44
Bonsoir,
J'obtient une erreur lors de la comparaison entre un caractère et une case d'un tableau. Voici des segments du code source :
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 29 mai 2009 à 22:32
C'est normal. Tu compares une chaîne de caractère avec un caractère.
Exemple: "A" est une chaine de caractère, et 'A' est un caractère.
const char* s = {'A', 'B', 'C', 'D', '\0'};
est équivalent à:
const char* s = "ABCD";
C'est de là que vient ton erreur, car ton "const char* tabs[]" est un tableau contenant des chaînes de caractères dans chacune des ses cases.
Plusieurs solutions:
* Utilise '' pour un caractère et non "".
const char* tabs =
{
'A', 'B', 'C', 'D', 'E', 'F',
[..]
'A', 'B', 'C', 'D', 'E', 'F'
} ;
OU
* Déréférence le pointeur lors de la comparaison (moche):
if (*(alphabet[b]) == Msg[a])
Enfin, vu que tu es en C++, oublie les const char* au profit des std::string bien mieux adapté.