IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Suppression de caractères dans une chaine


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Par défaut Suppression de caractères dans une chaine
    Salut,

    Je voudrais savoir si il y une fonction dans la bibliothèque standard du C, une fonction qui permet la suppression d'un caractère quelconque dans une chaine de caractères.

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par mouhammed Voir le message
    Salut,

    Je voudrais savoir si il y une fonction dans la bibliothèque standard du C, une fonction qui permet la suppression d'un caractère quelconque dans une chaine de caractères.
    C'est en principe facile à programmer. Il suffit de décaler tous les caractères qui suivent le caractère à effacer d'une position. Ca se fait facilement avec memmove().

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par mouhammed Voir le message
    Je voudrais savoir si il y une fonction dans la bibliothèque standard du C, une fonction qui permet la suppression d'un caractère quelconque dans une chaine de caractères.
    Non, il faut le faire soit même.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonjour,

    Je voudrais savoir si il y une fonction dans la bibliothèque standard du C, une fonction qui permet la suppression d'un caractère quelconque dans une chaine de caractères.
    S'agit-il de supprimer un caractère quelconque dans une chaine ou de l'ensemble d'un caractère quelconque dans une chaine ?

    par exemple dans la chaine "une chaine codée en machine", supprimer la première occurrence du "c" ou bien toutes les occurrences de "c" ?

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Par défaut
    Dans mon cas il s'agit de supprimer toutes les occurences de"c"

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par mouhammed Voir le message
    Dans mon cas il s'agit de supprimer toutes les occurences de"c"
    Fait de ton mieux et poste ton code si tu as un problème.

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Par défaut
    Voila mon programme en entier.
    Le problème est que la fonction supprime doit être appelé 2 fois pour que cela fonctionne correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    #include <stdio.h>
    #include <stdlib.h>
     
    #define VIDE -1
     
    /* le type des grilles de Sudoku */
    typedef int Grille[9][9];
     
    void initialiseGrille(Grille G);
    int lireGrille(Grille G);
    void afficheGrille(Grille G);
    void supprime(char *texte, char x);
     
    Grille G;
     
    char tab[172];
     
     
    int main()
    {
        lireGrille(G);
        afficheGrille(G);
        return 0;
    }
     
     
    void initialiseGrille(Grille G)
    {
        int ligne, colonne;
        for(ligne=0; ligne<9; ligne++)
        {
            for(colonne=0; colonne<9; colonne++)
                G[ligne][colonne]=VIDE;
        }
    }
     
    int lireGrille(Grille G)
    {
        int ligne,colonne,i=0,j=0;
        FILE* fichier=NULL;
     
        fichier = fopen ("grille1.txt", "r" );
     
        if(fichier==NULL)
        {
            printf("Impossible d'ouvrir le fichier grille1.txt\n");
            return 0;
        }
        while (!feof(fichier))
        {
            tab[i]=fgetc(fichier);
            i++;
        }
        supprime(tab, '|');
        supprime(tab, '|');
     
        //Prend le tableau tab et le met en forme pour que les valeur entre entre dans le tableau G
        for(ligne=0; ligne<9; ligne++)
        {
            for(colonne=0; colonne<9; colonne++)
            {
                G[ligne][colonne]=tab[j];
                j++;
            }
            j+8;
        }
        fclose(fichier);
        return 1;
    }
     
    //Affiche les grille de sudoku en matraice 3*3
    void afficheGrille(Grille G)
    {
        static char r[]="+---+---+---+";
        int ligne, colonne;
        for(ligne=0; ligne<9; ligne++)
        {
            if(ligne==0 || ligne ==3 || ligne==6)
                printf("%s\n",r);
            printf("|");
            for(colonne=0; colonne<9; colonne++)
            {
                if(colonne==3 || colonne==6) printf("|");
                //if(G[ligne][colonne]==-1) printf(" ");
                printf("%c", G[ligne][colonne]);
                if(colonne==8) printf("|\n");
            }
        }
        printf("%s\n",r);
    }
     
    void supprime(char *texte, char x)   // supprime x dans la chaine texte
    {
        int p ,i;
        for(i=0;texte[i] != '\0';i++)
        {
            if (texte[i] == x)  // on a trouve
            {
                for(p=i; texte[p]!=0; p++)
                texte[p]=texte[p+1];
            }
        }
    }
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2010] Suppression de caractères dans une chaine
    Par BLZ007 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/07/2014, 19h53
  2. suppression caractère dans une chaine
    Par courson dans le forum Débuter
    Réponses: 1
    Dernier message: 03/04/2009, 20h36
  3. Suppression de certains caractères dans une chaine
    Par Tchupacabra dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2007, 12h08
  4. Réponses: 3
    Dernier message: 31/01/2005, 23h18
  5. Réponses: 8
    Dernier message: 08/06/2004, 01h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo