Besoin d'aide, problème avec une boucle en analyse lexicale
ilyesilou
Messages postés
1
Statut
Membre
-
Dalfab Messages postés 720 Statut Membre -
Dalfab Messages postés 720 Statut Membre -
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 disque dur - Télécharger - Informations & Diagnostic
- Analyse performance pc - Guide
- 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");
}