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 :

char*, utiliser son contenu


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Points : 111
    Points
    111
    Par défaut char*, utiliser son contenu
    Bonjour,

    je suis à la recherche d'un moyen simple pour faire a opérateur b.
    Je dois lire dans un fichier des informations. Je doit récupérer 1 valeur et un opérateur exemple: 13[3]"205">;
    dans cette chaine je dois récupérer le 205 et le >. Je voudrais utilisé directement le contenu de ma variable. Un peu comme un eval en javascript.

    d'avance merci de votre aide.

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut



    Ce que tu peux faire, c'est de rechercher le premier caractère " avec la fonction strchr. Le pointeur retourné correspond à l'emplacement de ce caractère. A partir de ce pointeur, tu lis la chaîne jusqu'au prochain caractère ", tout en stockant les caractères lus dans une chaîne temporaire que tu peux ensuite convertir avec la fonction strtol.

    Récupérer le caractère > est ensuite un jeu d'enfant
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Points : 111
    Points
    111
    Par défaut
    Ok donc je me suis mal exprimé. Je n'ai pas de problème pour récupérer les "valeurs".

    Par contre je voudrais directement les utiliser. Si je stocke dans une variable par exemple tmp. je voudrais pourvoir utilisé le contenu de tmp comme opérateur.

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Char* tmp = ">";
    Char* A = "123";
    Char* B = "154";
    return A tmp B;
    En java-script, je dispose de la fonction eval qui me permet de faire ce genre de chose. Existe-il une fonction faisant la même chose ?

  4. #4
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par antrax2013 Voir le message
    Ok donc je me suis mal exprimé. Je n'ai pas de problème pour récupérer les "valeurs".

    Par contre je voudrais directement les utiliser. Si je stocke dans une variable par exemple tmp. je voudrais pourvoir utilisé le contenu de tmp comme opérateur.
    En java-script, je dispose de la fonction eval qui me permet de faire ce genre de chose. Existe-il une fonction faisant la même chose ?

    non

    (maintenant tu vois l'utilité d'exprimer correctement ton problème. On avait rien compris... )


    Si tu veux obtenir : "123>154", alors il te faut soit allouer (le mieux) soit avoir une chaine de longueur prédéfinie et copier dedans :

    Ici l'exemple avec la chaîne de taille prédéfinie :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char Result[20] ;
     
    sprintf ( Result, "%s%s%s", A, tmp, B);
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Points : 111
    Points
    111
    Par défaut
    Ok merci je vais tester.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Points : 111
    Points
    111
    Par défaut
    En fait je souhaite connaitre le résultat de la comparaison de "123>154"

  7. #7
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par antrax2013 Voir le message
    En fait je souhaite le connaitre le résultat de la comparaison de "123>154"
    Ah bon !!!!!!!!!!!!!!



    Pourquoi ne pas l'avoir dit plus tôt ??

    Donc on reprend : il te faut donc des entier et non des chaînes (à moins que tu ne veuilles comparer les chaînes ??) ..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Points : 111
    Points
    111
    Par défaut
    Oui je souhaite comparé les entiers.

    Je peux transformer transformer mon A et mon B en entier. C'est pas un soucis.

  9. #9
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    alors il te faut déterminer l'opération indiquée par ton opérateur, par exemple via une enum ou des define, et faire l'opération entre tes 2 entiers..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    alors il te faut déterminer l'opération indiquée par ton opérateur, par exemple via une enum ou des define, et faire l'opération entre tes 2 entiers..
    Ok je pense que je vois ce que tu veux dire. Mais pour être sur, pourrais-tu me donner un petit exemple stp? D'avance merci.

  11. #11
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par antrax2013 Voir le message
    Ok je pense que je vois ce que tu veux dire. Mais pour être sur, pourrais-tu me donner un petit exemple stp? D'avance merci.
    Code C : 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
    23
    24
    25
    int A , B ;
    char Oper ;
    int Result ;
     
     
    switch ( Oper )
     {
         case '+' :
               Result = A + B ;
               break ;
     
        case '-' :
               Result = A - B ;
               break ;
     
    ....
        case '>' :
              if ( A > B )
                  Result = 1 ;
              else
                   Result = 0 ;
              break ;
    ...
        } 
     }
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  12. #12
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Points : 111
    Points
    111
    Par défaut
    Ok merci mais c'est ce que j'ai fait.

    En fait en javascript si tu fais: => tu récupères le résultat de la comparaison. Maintenant, le faire à la mano, je l'ai déjà fait.

    C'est juste que je travaille avec pour contrainte un nombre limite de micro-instructions et que dans 90% des cas, les fonctions du langage sont plus performantes que des fonctions faites à la mano.

    Merci de ton aide.

  13. #13
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    En C tu n'as pas trop le choix, c'est un langage de bas niveau dans la liste des langages de haut niveau et ce genre de chose n'est pas faisable directement comme ici en javascript
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. DTPicker utiliser son contenu pr renseigner 1 feuille Excel
    Par mosquitout dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/01/2007, 21h16
  2. [VB5]Connaitre l'index d'une liste via son contenu
    Par guda dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 15/10/2005, 15h08
  3. Comment redimensionner un TEdit en fonction de son contenu ?
    Par Tempotpo dans le forum Composants VCL
    Réponses: 10
    Dernier message: 25/07/2005, 21h52
  4. [C#] Dossier et son contenu.
    Par GéniuS77 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 12/10/2004, 11h05
  5. Comment copier un répertoire et son contenu ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 20/06/2004, 17h40

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