begin process at 2012 02 10 06:19:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

Erreur de comparaison entre un caractère (string) et une case d'un tableau (const char*)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Erreur de comparaison entre un caractère (string) et une case d'un tableau (const char*)

vendredi 29 mai 2009 à 22:14:53 | Erreur de comparaison entre un caractère (string) et une case d'un tableau (const char*)

wizard512

Membre Club
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 :

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    const char* tabs[ ] =
    {
     "A", "B", "C", "D", "E", "F",
               [..]
     "A", "B", "C", "D", "E", "F"
    } ;
      [..]
    string Msg ;  
    int a = 5  ;
      [..]
    cout << "Message : " ;
    cin  >> Msg ;   
      [..]
    for( int b = 0 ; b < 55 ; ++b )
    {
      cout<< ((char*)alphabet[b]) <<".."<< ((char)Msg[a]) << endl;
               
      if( (char*)alphabet[ b ] == (char)Msg[ a ] )
      {
          //Msg[ a ] = ((char)substitu[ b ]) ;
          cout << b << endl ;    
      }
    } ;

     cout << Msg << endl ;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Et voici l'erreur obtenue par devcpp :
 
ISO C++ forbids comparison between pointer and integer

Une petite idée?
Cordialement.
vendredi 29 mai 2009 à 22:32:13 | Re : Erreur de comparaison entre un caractère (string) et une case d'un tableau (const char*)

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
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é.
vendredi 29 mai 2009 à 22:44:03 | Re : Erreur de comparaison entre un caractère (string) et une case d'un tableau (const char*)

wizard512

Membre Club
A oui effectivement. Merci pour l'aide =) 


Cette discussion est classée dans : erreur, comparaison, msg, char, cout


Répondre à ce message

Sujets en rapport avec ce message

Ecriture/lecture dans un fichier [ par SneakGuy ] Haaa... Merci, sa m'a aider... Enfin, j'ai encore plusieurs problemes...pour l'ecriture j'ai quelque chose qui ressemble a sa:char user[20];char pass[ Dans le genre prenant........ [ par Xs ] oui !c 'est trés chiant !j'explique mon pb : j'ai un code source, fais par moi-meme, et dedans, je veux que l'on saisisse des renseignement comme le l Comparaison avec StrCmp() [ par lcampeur ] Bonjour, je souhaite effectuer une comparaison, j'ai un programme contenant une structure borne contenant: 1- char NomBorne [20] 2- char IP[16]M ERREUR cout [ par ironz ] Salut,je suis nouveau a C++ mais la ya un prob évident.A chaque fois que jai une source avec "cout" sa me dit error en le compilant le source(J'ai M$ message d'erreur a l'execution [ par frdestroyers27 ] Bonjours a tous!j'ai taper le programme suivant en Win32Console app.#include #include #include char nom[50][MAX_PATH];void lister(LPCTSTR file);void a j'ai commencé un sof mais je bloque ! :( [ par xionoxid ] Voilà quand je demande rentré le pass si il met "a" alors ça devrait faire login = rien; mais le probleme c'est que meme si je met a et ça fait PAS lo probleme de *Char [] [ par oRTEEZ ] Bonjour, voila mon nouveau petit probleme.je pense pas que cela soit tres dur.J'ai un char Text[256] : contenant un texte entre par l'user.et unchar c++ erreur dans le code [ par blastmanu ] rebonjour Vous allez suremment rire mais voila mon compilateur me dit qu'il y a une erreur mais je ne la trouve pas pouvez vous Comment forcer le RTS pour une liaison RS232 [ par ancat ] Bonjourje viens de faire un petit prog (grandement inspire de sources du site) mais je ne saisis pas trop le controle du RTS.Celui ci est-il traite pa help me !!! [ par pascal13 ] j arrive pas a compiler mon programme...je sais que g qlq que souccis au niveau de la sauvegarde des données sur le fichier toutes remarques seront le


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales