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 :

Comment enlever un mot d'une chaine?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut Comment enlever un mot d'une chaine?
    Bonjour, j'ai une chaine de caractère :
    Salut\comment\sava\surplu
    et j'aimerais supprimer le mot surplu de la chaine ainsi que l'anti-slash :
    Salut\comment\sava
    mais je ne vois pas quel fonctions utiliser.
    Merci pour votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    C'est assez simple: strstr() pour reperer la sous-chaine, et memmove() pour l'ecraser.

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Citation Envoyé par benjiprog
    et j'aimerais supprimer le mot surplu de la chaine ainsi que l'anti-slash :
    mais je ne vois pas quel fonctions utiliser.
    Un extrait des pages sources C qui ne devrait plus tarder à arriver :
    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
    #include <string.h>
     
    char *RemplacerFragment (char *source, char *vieux, char *nouveau)
    {
      char *original = source;
      char temp[256];
      int ancienne_long = strlen (vieux);
      int i, j, k, place = -1;
      for (i = 0; source[i] && (place == -1); ++i)
        for (j = i, k = 0; source[j] == vieux[k]; j++, k++)
          if (!vieux[k+1])
            place = i;
      if (place != -1)
      {
        for (j=0; j<place; j++)
          temp[j] = source[j];
        for (i=0; nouveau[i]; i++, j++)
          temp[j] = nouveau[i];
        for (k = place + ancienne_long; source[k]; k++, j++)
          temp[j] = source[k];
        temp[j] = 0;
        for (i=0; source[i] = temp[i]; i++)
          ;
      }
      return original;
    }
    Et tu fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char s[] = "Salut\comment\sava\surplu"
     
    RemplacerFragment (s, "sava\", "")
    Ici, tu ne remplace que la première occurance. Si tu veux remplacer toutes les occurences, j'ai un autre code mais plus long

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/04/2011, 22h56
  2. [AC-2000] Comment filtrer des mots dans une chaine de caractères
    Par bionet dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 21/07/2009, 18h16
  3. Comment remplacer un mot dans une chaines de caractere?
    Par lakhdharani dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 24/02/2009, 11h58
  4. comment highlighter un mot dans une chaine ...
    Par valou2006 dans le forum Langage
    Réponses: 9
    Dernier message: 08/03/2006, 13h54

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