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 d'une chaine de caractere


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 38
    Points : 25
    Points
    25
    Par défaut manipulation d'une chaine de caractere
    voila cette chaine de caractere char* "... [8,12] ... ". ; comment faire pour extraire 8 et 12 et les remplacer par deux autres nombres. (8 et 12 sont juste des exemples). merci bien de me donner le code c necessaire!

  2. #2
    Membre habitué Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 137
    Points
    137
    Par défaut
    bonjour,

    il serait assez intéressant de savoir si la chaine donnée en exemple : "... [8,12] ..." est toujours dans le même format ou bien si ce format peut changer ?
    Le 3 points en début et fin de chaine ont-ils une utilité ?
    Si rien ne change, il serait envisageable de faire une recherche dans la chaîne en position 5 et 7, lire le caractère. Si le caractère lu est un chiffre (fonction atoi et isdigit de ctype.h), lire le caractère suivant.
    Puis modifier les caractères concernés à partir de la position d'origine.
    Attention, lors de la définition de la chaine, il faut avoir prévus assez d'espace (caractère \0 compris) pour le cas ou la chaine serait par exemple : "... [4,5] ..." et deviendrait "... [45,78] ...], soit 2 caractères de plus.

    bon courage.

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    voila cette chaine de caractere char* "... [8,12] ... ". ; comment faire pour extraire 8 et 12 et les remplacer par deux autres nombres. (8 et 12 sont juste des exemples).
    - Si la chaine est définie comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * chaine = "... [8,12] ... ";
    ce n'est pas possible : la chaine est non modifiable. Il faut utiliser un autre tableau comme destination.

    - Si la chaine est définie comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char  chaine[] = "... [8,12] ... ";
    // ou
    char chaine[---] = "... [8,12] ... ";
    Le remplacement sur place (sans passer par un autre tableau) est délicat car la chaine de remplacement peut être d'une taille différente de celle de la chaine d'origine "8,12". Ce n'est pas impossible si le tableau est assez grand pour contenir la chaine finale.

    Si on peut passer par un autre tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    - rechercher dans la chaine d'origine l'adresse p du caractère '[' (strchr)
    - remplacer ce caractère par '\0' et incrémenter p
    - copier le début du tableau dans le tableau final. Ajouter '[' et les nouvelles valeurs. (sprintf)
    - rechercher dans la chaine d'origine à partir de p l'adresse p du caractère ']'
    - Ajouter dans le tableau final la chaine à partir de p (strcat).
    merci bien de me donner le code c necessaire!
    Tu as les éléments pour le faire toi même.

Discussions similaires

  1. manipulation d'une chaine de caractere
    Par kali38 dans le forum Général Python
    Réponses: 10
    Dernier message: 01/06/2011, 14h26
  2. manipuler une chaine de caractere
    Par l_achraf dans le forum VB.NET
    Réponses: 4
    Dernier message: 15/05/2009, 17h47
  3. Manipulation d'une chaine de caracteres ASP
    Par Brestasp dans le forum ASP
    Réponses: 1
    Dernier message: 18/10/2007, 14h13
  4. Manipulation d'une chaine de caracteres
    Par C.R.E.A.M dans le forum Excel
    Réponses: 2
    Dernier message: 17/08/2007, 11h08
  5. Manipuler une chaine de caracteres
    Par virtu67 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/12/2006, 15h31

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