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
| void decaler_gauche(char **m_a,int compteur){
int comp;
char tmp[20];
for (comp=0;comp < strlen(*m_a)-compteur;comp++)
{
tmp[comp]=(*m_a)[comp+compteur];
}
tmp[comp]='\0';
//printf(" %s \n",tmp); c'est ce printf qui resoud le probleme mais je ne le veut pas
*m_a=tmp;
}
int suivant(char **m_a){
int longeur,compteur,v_retour,position=0;
char tmp[20],*s;
int state=0;
longeur=strlen(*m_a);
for(compteur=0;compteur<longeur;compteur++)
{
if(isdigit((*m_a)[compteur]))
{
tmp[compteur]=(*m_a)[compteur];
state=1;
}
else
{
if((*m_a)[compteur]=='.'&& state==1)
{
tmp[compteur]='\0';
decaler_gauche(m_a,compteur+1);
return(4);
}
else
{
return(-1);
}
}
}
}
int main(){
char *s="1.55.8.9.1.2";
int i;
i=suivant(&s);
printf("la chaine vaut %s \n",s);//sans le printf dans la fct decaler_gauche() ce printf //n'affiche pas la vrai valeur de s
} |