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 :

Test d'une chaine de caractères


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut Test d'une chaine de caractères
    Bonjour,

    je lis un fichier et je voudrais tester dans chacune des lignes une partie de ce qui se trouve dans cette ligne à une position bien précise et sur une longueur bien précise.
    Mais je ne trouve pas la fonction permettant de le faire.

    Merci de votre aide

  2. #2
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par stepd
    Bonjour,

    je lis un fichier et je voudrais tester dans chacune des lignes une partie de ce qui se trouve dans cette ligne à une position bien précise et sur une longueur bien précise.
    Mais je ne trouve pas la fonction permettant de le faire.

    Merci de votre aide
    strncmp().

    A+

  3. #3
    Membre régulier Avatar de Bahan
    Inscrit en
    Avril 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2006
    Messages : 147
    Points : 88
    Points
    88
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int strncmp(char * str1, char * str2, size_t n);
    Cette fonction ne propose pas de pouvoir commencer à une position donnée, si ? Elle compare un certain nombre de caractères, mais en commençant toujours par le début, me trompe-je ?

    Merci d'avance pour l'info.

    Bahan
    Bats-toi de toutes tes forces tant que tu es en vie, et n'abandonne que quand tu es mort

  4. #4
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Bonjour

    Si j'ai bien compris, tu peux utiliser strncmp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #define LG_CHAMP1 8
    #define LG_CHAMP2 12
    /* etc */
    #define VALEUR_SPECIALE_CHAMP2 "champ_fixe__"
    /* */
      const char * ligne = "00001234champ_fixe__autre_champ_fixe________";
      if (!strncmp(VALEUR_SPECIALE_CHAMP2, ligne + LG_CHAMP1, LG_CHAMP2 - LG_CHAMP1))
      {
         /* ... */
      }
    /* ... */
    Marre d'etre charrette

  5. #5
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par Bahan
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int strncmp(char * str1, char * str2, size_t n);
    Cette fonction ne propose pas de pouvoir commencer à une position donnée, si ? Elle compare un certain nombre de caractères, mais en commençant toujours par le début, me trompe-je ?
    Et alors, le début tu le choisis, non ? Un pointeur peut s'incrémenter.

    A+

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    En supposant que toto et tata sont des pointeurs vers des tableaux de caractères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strncmp(toto+4, tata+7, 8);
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    ok, merci à tous pour votre aide, ça marche impeccable.

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

Discussions similaires

  1. [Tableaux] Test sur une chaine de caractères et affichage
    Par ferjani.kais dans le forum Langage
    Réponses: 2
    Dernier message: 04/01/2008, 17h59
  2. Réponses: 2
    Dernier message: 14/11/2007, 16h43
  3. Test sur une chaine de caractéres
    Par Je-cherche-pfe dans le forum C#
    Réponses: 3
    Dernier message: 04/09/2007, 23h44
  4. test d'une chaine de caractère
    Par tsyl dans le forum Oracle
    Réponses: 1
    Dernier message: 14/03/2006, 09h20
  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