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 :

Parsing avec scanf


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut Parsing avec scanf
    Bonjour,
    Je souhaite parser la chaine suivante avec sscanf:
    str="[group]"
    Je souhaite :
    - M'assurer de la présence de '['
    - Récupérer la chaine 'group'
    - M'assurer de la présence de ']'
    J'utilise le format suivant, mais sans résultat :
    ret = sscanf(str, " %[[] %[a-zA-z] %[]]", t1, t2, t3);

    En revanche, si str="{group}" et que le format est :
    ret = sscanf(str, " %[{] %[a-zA-z] %[}]", t1, t2, t3);
    ca marche bien !

    Je pense que les caractères '[' et ']' posent problème .... mais je ne trouve pas la solution.

    Avez vous des idées ?

  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
    essaie d'utiliser ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ret = sscanf(str, " %[\[] %[a-zA-z] %[\]]", t1, t2, t3);

  3. #3
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Citation Envoyé par cmoibal Voir le message
    essaie d'utiliser ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ret = sscanf(str, " %[\[] %[a-zA-z] %[\]]", t1, t2, t3);
    Merci mais \[ n'est pas reconnu comme séquence d'échapement !

  4. #4
    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
    Alors, essaie de mettre directement le char attendue....
    ret = sscanf(str, " [ %[a-zA-z] ]", t1, t2, t3);


    un passeur lex je pense non ?

  5. #5
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    C'est OK
    Grossiere erreur dans le format (sur le z):
    %[a-zA-Z] <> %[a-zA-z]

    Merci !

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

Discussions similaires

  1. problème avec scanf
    Par thierry_b dans le forum C
    Réponses: 10
    Dernier message: 21/12/2005, 20h10
  2. problème avec scanf
    Par troumad dans le forum C
    Réponses: 30
    Dernier message: 20/11/2005, 15h21
  3. [debutant] pb avec scanf et printf
    Par Andrey dans le forum C
    Réponses: 12
    Dernier message: 17/11/2005, 17h15
  4. [SAX] parsing avec sax
    Par jdar dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 03/12/2004, 21h34
  5. PB avec scanf
    Par ché dans le forum C
    Réponses: 6
    Dernier message: 13/08/2003, 07h25

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