Supprimer espace ou caractères spéciaux en C
Lermit
-
bigmanes Messages postés 11 Statut Membre -
bigmanes Messages postés 11 Statut Membre -
Bonjour, je m'énerve depuis maintenant quelques temps sur une fonction qui consiste à supprimer des caractères placés préalablement dans un tableau dans le main comme ' ' ou '-'
enfin voilà le terminal me met toujours erreur de segmentation et donc je ne sais pas si ma fonction marche
char* copie_sans_separateur (char *s, char sep[])
{int i,j,k;
for (i=0; s[i]!='\0'; i++)
{if (s[i] == sep[j] || s[i] == sep[j+1])
{for (k=i; s[k]!=0; k++)
s[k]=s[k+1];
}
}
return s;
}
merci d'avance pour votre aide
Lermit
enfin voilà le terminal me met toujours erreur de segmentation et donc je ne sais pas si ma fonction marche
char* copie_sans_separateur (char *s, char sep[])
{int i,j,k;
for (i=0; s[i]!='\0'; i++)
{if (s[i] == sep[j] || s[i] == sep[j+1])
{for (k=i; s[k]!=0; k++)
s[k]=s[k+1];
}
}
return s;
}
merci d'avance pour votre aide
Lermit
Configuration: Linux Firefox 3.0.4
3 réponses
-
Salut,
teste :#include <stdio.h> #include <string.h> #include <stdlib.h> char* suppr(const char *ch,const char* sup){ char *s=malloc(strlen(ch)+1); int k=0; for(int i=0;i<strlen(ch)+1;i++){ int j; for(j=0;j<strlen(sup)+1;j++) if(ch[i]==sup[j]) break; if(j==strlen(sup)+1) s[k++]=ch[i]; } return s; } int main(void){ puts(suppr("$cou-co#u","$#-")); return 0; }
Cdlt -
Tu n'initialises pas ton "j" je crois... essaie et donne des nouvelles
-
bonjour, sans programme C, la commande (sous Linux) « tr -d ' ' » enlèvera les espaces, et « tr -d '_' » enlèvera les _.
Sinon, de toutes façons, utiliser j sans l’avoir initialisé, c’est du suicide, relis donc ton code, j ne vaut rien de prévisible.