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 :

Manipulation de string ? [Débutant(e)]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut Manipulation de string ?
    Bonjour;

    Comment faire pour extraire une partie de string.
    exemple j'ai:
    " un jour comme les autres "
    et je récupère

    "comme"

    Voila..
    Merci d'avance pour l'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
    strstr() pour trouver la sous-chaine, puis strncpy().

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    strstr ok je suis d'accord...
    en fait pour etre plus precis j'ai ca

    " voici ma phrase "

    et je veux pouvoir modifier par:

    " voici ta phrase "

    comment je dois m'y prendre
    merci

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char *p=NULL ;
     
    p=strstr(chaine, "ma");
    if ( p != NULL )
       *p = 't' ;

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    A savoir que si on voulait modifier toutes les occurences on pourrait faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    char *p=chaine;
     
    while(p != NULL) {
      p=strstr(p, "ma");
      if ( p != NULL ) {
        *p = 't' ;
      }
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    ben imaginons maintenant que je veuille remplacer deux lettres
    *p = 't'; ne marche plus
    je dois faire comment?

  7. #7
    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 UnSofteuxAmateur
    ben imaginons maintenant que je veuille remplacer deux lettres
    *p = 't'; ne marche plus
    je dois faire comment?
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main(void)
    {
        char chaine[] = "Voici ma chaine";
        char *pc = chaine;
     
        while (pc != NULL)
        {
            pc =strstr(chaine, "ma");
            if (pc != NULL)
            {
                strncpy(pc, "ta", strlen("ta"));
            }
        }
     
        puts(chaine);
     
        return EXIT_SUCCESS;
    }
    ATTENTION: ce code ne marche pas si tu désires remplacer "ma" par une chaine de plus de 2 caractères.

    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++

    +

  8. #8
    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 UnSofteuxAmateur
    Comment faire pour extraire une partie de string.
    Y a pas de 'string' en C. Il y a des chaines de caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    " un jour comme les autres "
    et je récupère
     
    "comme"
    Quel est le critère ? Donne une définition plus précise de ton problème,

    Tu veux extraire un mot précis, le nième, qu'est-ce qu'un mot ? Ou alors il faut juste la position et la longueur etc.

Discussions similaires

  1. [c#] Comment manipuler des string ?
    Par Mickey.jet dans le forum C#
    Réponses: 4
    Dernier message: 27/05/2009, 08h14
  2. fonction manipulant une string
    Par salseropom dans le forum C
    Réponses: 16
    Dernier message: 21/02/2006, 13h18
  3. [STRING] Manipulation de string
    Par Hoegaarden dans le forum Langage
    Réponses: 2
    Dernier message: 30/11/2005, 14h46
  4. [java] manipulation de string
    Par n8ken dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2005, 11h08
  5. [MFC] Manipulation de string
    Par mulot49 dans le forum MFC
    Réponses: 2
    Dernier message: 24/08/2004, 16h43

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