Supprimer espace ou caractères spéciaux en C

Fermé
Lermit - 4 déc. 2008 à 15:41
bigmanes Messages postés 11 Date d'inscription mardi 24 octobre 2006 Statut Membre Dernière intervention 19 juillet 2010 - 4 déc. 2008 à 18:09
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
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
4 déc. 2008 à 16:18
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
1
bigmanes Messages postés 11 Date d'inscription mardi 24 octobre 2006 Statut Membre Dernière intervention 19 juillet 2010 1
4 déc. 2008 à 18:09
Tu n'initialises pas ton "j" je crois... essaie et donne des nouvelles
1
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
4 déc. 2008 à 15:44
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.
0