maha1987
Messages postés101Date d'inscriptionsamedi 4 juin 2011StatutMembreDernière intervention29 avril 2013
-
25 févr. 2012 à 13:06
HSylvio
Messages postés116Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention14 juin 2012
-
28 févr. 2012 à 11:09
bjr tt le monde jai un prob dans ce prog (dans la fct verif si letat =4 le prog doit sticker la valeur de la partie entiere et decimale de la chaine dans les 2variables v1 et v2 mais je sais pas pk le sscanf na pas marche)
#include<stdio.h>
#include<string.h>
#include<conio.h>
int chiffre(char ch)
{
return(ch>='0' && ch<='9');
}
int verif_version2( char *s,long *v1,long *v2)
{
char c;
int etat=0;
while(etat!=4 && etat!=5)
{
switch(etat)
{
case 0 :if(*s==' ') etat=0;
else if(chiffre(*s)) etat=1;
else etat=5;
break ;
case 1:if(chiffre(*s)) etat=1;
else if ( *s==' ') etat=6;
else if(*s=='.') etat=2;
else if(*s=='\0') etat=4;
else etat=5;
break ;
case 2:if(chiffre(*s)) etat=3;
else etat=5;
break ;
case 3 :if(chiffre(*s)) etat=3 ;
else if(*s=='\0') etat=4;
else if (*s==' ') etat=6;
else etat=5;
break ;
case 6 :if(*s==' ') etat=6;
else if(*s=='\0') etat=4;
else etat=5;
break ;
}
*s++ ;
}
if (etat==4)
{
sscanf(s,"%ld %c %ld",v1,&c,v2);
return(1);
}
return(0);
}
int main()
{
char m[100];long v1=0,v2=0;
printf(" svp donnez une chaine de caracteres: ");
gets(m);
if( verif_version2(m,&v1,&v2))
printf ("la chaine %s est valide:la partie entiere est %ld et la partie decimale est %ld .",m,v1,v2) ;
else
printf ("la chaine %s est non valide.",m) ;
getch();
return(0);
}