Rechercher : dans
Par :

Supprimer espace ou caractères spéciaux en C

Dernière réponse le 4 déc 2008 à 18:09:12 Lermit, le 4 déc 2008 à 15:41:12 
 Signaler ce message aux modérateurs

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

Configuration: Linux
Firefox 3.0.4

Meilleures réponses pour « Supprimer espace ou caractères spéciaux en C » dans :
[CCM] Utiliser des caractères spéciaux VoirVous pouvez utiliser des caractères spéciaux dans vos messages sur les forums de CCM. Vous pouvez: Soit utiliser la table de caractères Windows (charmap.exe) et copier-coller les caractères dans le message. Soit utiliser les entités...
Oracle - Echappement de caractères spéciaux VoirPour certaines requêtes SQL, nous avons besoin de rechercher des chaînes de caractères contenant des caractères spéciaux tels que '%' Dans l'exemple suivant, qui est faux, le besoin est de trouver les enregistrements contenant au milieu le...
Supprimer un fichier contenant des caractères spéciaux VoirSi le fichier que vous souhaitez supprimer commence par un caractère "moins" (-), la commande rm risque de prendre la suite comme une option de la ligne de commande. Pour y remédier, une première solution consiste à faire précéder le nom du...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

(Pabix), le 4 déc 2008 à 15:44:36

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.

Répondre à (Pabix)

2

fiddy, le 4 déc 2008 à 16:18:55
  • +1

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
Google is your friend

Répondre à fiddy

3

 bigmanes, le 4 déc 2008 à 18:09:12
  • +1

Tu n'initialises pas ton "j" je crois... essaie et donne des nouvelles

Répondre à bigmanes
Collection CommentÇaMarche.net