1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #include <assert.h>
enum EEtat { ACCEPTE, REFUSE, NORMAL };
enum EEtat Transition(enum EEtat courant, char c)
{
/*Normalement, cette fonction en peut pas être appelée pour les états finaux*/
assert(courant==NORMAL);
switch(c)
{
case 'a':
case 'b':
case 'c':
return NORMAL;
case '\0':
return ACCEPTE;
default:
return REFUSE;
}
}
int Verifier(char const *s)
{
enum EEtat initial = NORMAL;
enum EEtat courant = initial;
while(courant!=ACCEPTE && courant!=REFUSE)
{
courant = Transition(courant, s);
s++;
}
if(courant==ACCEPTE)
return 1;
else
return 0;
} |
Partager