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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<float.h>
int Analyse(char **ligne)
{
int res;
char *mot;
char *endptr;
while(**ligne == ' ') (*ligne)++;
/* on est en fin de chaine */
if(**ligne == '\0')
{
fprintf(stderr,"erreur : rien n'a ete lu\n");
return 1;
}
while(**ligne != '\0')
{
/* c'est un chiffre */
if(isdigit(**ligne))
{
res = sscanf(*ligne,"%[0-9.]s ",mot);
if(res != 1)
return 1;
strtod(mot,&endptr);
if(*endptr != '\0')
return 1;
while(isdigit(**ligne) || **ligne == '.') (*ligne)++;
}
/* c'est une lettre */
if(isalpha(**ligne))
{
res = sscanf(*ligne,"%[a-z]s ",mot);
if(res != 1)
return 1;
while(isalpha(**ligne)) (*ligne)++;
}
}
if(**ligne == '\0')
return 0;
return 1;
}
int main(int argc, char*argv[])
{
int i;
for(i=1;i<argc;i++)
{
if(Analyse(argv[i]))
{
fprintf(stderr,"erreur\n");
return 1;
}
printf ("'%s'\n",argv[i]);
}
return 0;
} |
Partager