Besoin d'aide, problème avec une boucle en analyse lexicale
ilyesilou
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde, voici le code (c'est l'analyse lexical d'un langage qui contiens 4 caractère (a,b,c,d) )
je ne sais pas pourquoi sa ne marche pas, aidez moi svp
#include<stdio.h> #include<string> #include<string.h> #include<iostream> using namespace std; int main (void) { string a; cout << "entrer le mot: "; cin>>(a); int i=0; bool t=true; while ( (t=true) && (i<a.size()) ) { if ( a[i] == 'a' ) { t=true; i++; getchar(); } else { if (a[i]=='b'){ t=true; i++; getchar(); } else { if (a[i]=='c'){ t=true; i++; getchar(); } else { if (a[i]='d'){ t=true; i++; getchar(); } else{ t=false; i= a.size(); getchar(); } } } } } if (t=true) { cout<< "lexicale est juste"; } else { cout<< "lexicale est faux"; } getchar(); }
je ne sais pas pourquoi sa ne marche pas, aidez moi svp
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Besoin d'aide, problème avec une boucle en analyse lexicale
- Analyse composant pc - Guide
- Analyse performance pc - Guide
- Analyse disque dur - Télécharger - Informations & Diagnostic
- Nouveau tag analysé - Forum Huawei
- Échec de l'analyse antivirus. ✓ - Forum Antivirus
2 réponses
Ton code peut être simplifié pour être plus lisible :
#include <stdio.h> #include <string.h> char allowed[4] = "abcd" ; int in_array( char c ){ int i = 0; for( i = 0; i < 4 ; i++ ){ if(allowed[i] == c) return 1; } return 0; } int main(void){ char *mot1 = "abddbdbdccd" ; int i; for( i = 0; (i < strlen(mot1)) && (in_array(mot1[i]));i++); if(i<strlen(mot1)) printf("FAUX"); if(i==strlen(mot1)) printf("OK"); }