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 :

Chaine de Caractères


Sujet :

C

  1. #1
    Membre éclairé Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Par défaut Chaine de Caractères
    Bnojour je voudrais récupèrer dans une liste de prénoms séparés par une quotte, le premier prénom.

    Voici mon code mais il me génère un DUMP à ma 2ème lecture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /* Balayage de sql_etpren pour ne récupérer que le premier prénom */
            RAZ(t_etpren);
            indice_pren=0;
            while (sql_etpren[indice_pren]!='\'' || indice_pren<strlen(sql_etpren))
               {t_etpren[indice_pren]=sql_etpren[indice_pren];
                indice_pren++;
                }
            /* copie de la fin de chaine */    
            t_etpren[indice_pren]='\0';

  2. #2
    Membre chevronné Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Par défaut
    Bonjour,

    Pour le test que tu a fait, c'est quoi la chaine d'entrer ?

    Pour une première remarque, il faut metre le test de taille avant la lecture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     while (indice_pren<strlen(sql_etpren) || sql_etpren[indice_pren]!='\'')
    pour vérifier la position de l'indice avant!!!

  3. #3
    Membre éclairé Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Par défaut
    ça vient d'un curseur.

    ça peut _ être par exemple

    GERARD 'RENE' MICHEL

    et je veux récupérer GERARD uniquement.

    JE fais tenter ton conseil

    [Edit] ça ne change rien. Quand je mets le while en commentaire plus de dump

  4. #4
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    La fonction strchr() devrait faire l'affaire.
    Sinon, la fonction strtok_r() pourrait également résoudre ton problème.

  5. #5
    Membre éclairé Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Par défaut
    avec le code comme ça plus de core mais ça ne fait pas mon problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /* Balayage de sql_etpren pour ne récupérer que le premier prénom */
            RAZ(t_etpren);
            indice_pren=0;
            while (indice_pren<strlen(sql_etpren))
               {t_etpren[indice_pren]=sql_etpren[indice_pren];
                indice_pren++;
                }
            /* copie de la fin de chaine */    
            t_etpren[indice_pren]='\0';    
            rskip(t_etpren);
    j'ai vu pour strtok mais il parait qu'il faut pas trop l'utiliser, pas stable.

    [Edit] Problème résolu. C'est et est pas ou dans ma condition!!!

    Sinon c'était tjrs vrai => boucle infinie!!

    Désolé!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Crypter une chaine de caractères
    Par Yabo dans le forum Réseau
    Réponses: 18
    Dernier message: 19/11/2004, 23h04
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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