parse d'une chaine de caractère
Salut!
Je souhaite pouvoir entrer au clavier une chaine de caractere au format suivant:
ch1 ch2:ch3
ou
ch1 ch2-ch3
j'arrive a récupérer ch1, sauter l'espace, récupérer ch2, récupérer la ponctuation entre ch2 et ch1, mais je ne récuère que le premier caractère de ch3...
Voici le code:
Code:
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
|
int reco_com(char s[],char s2[],char temp[],char punct[], char fin[])
{
int i,k,j,l;
char s1[256];
for(i=0;i<32;i++)
{
if(isspace(s[i])!=8192)
s1[i]=s[i];
else
{ for(k=i+1;k<32;k++)
{
if(ispunct(s[k])!=4)
temp[k-i-1]=s[k];
else
{
punct[0]=s[k];
for(l=k+1;k<32;k++)
fin[l-k-1]=s[l];
goto suite;
}
}
goto suite;
}
}
suite:
j=strcmp(s1,s2);
return j;
} |
ou s est la chaine entrée lu au clavier, s2 cette meme chaine a laquelle on a enlevé tt ce qui suit l'espace (juste ch1 dans l'exemple), temp <=> ch2, punct<=> : ou - et fin <=> ch3.