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 :

Comparer 2 chaines de caractère contenant des float


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut Comparer 2 chaines de caractère contenant des float
    Bonjour,

    Est-il possible de comparer 2 variables de type char* contenant des valeurs en float.
    Par exemple :
    MaVariable1="8.0"
    MaVariable2="10.5"

    Comment savoir si MaVariable1 est < ou = à MaVariable2

    Bien sûr ceci serait simple si les variables étaient de type float mais là ce n'est pas le cas puisque ce sont des chaînes de caractères.

    J'ai bien pensé à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(strcmp(MaVariable1, MaVariable2)==0)
    {
         //Mes variables sont identiques
     
    }
    Mais ceci est une comparaison de chaîne de caractères et non une comparaison de valeur de chaine de caractère.
    Je ne sais pas si je me fais bien comprendre.
    J'espère que oui.
    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Je vois 2 solutions :
    - soit tu convertis te char* en float (ou double) et tu les compares simplement : utilise par exemple la fonction strtod.
    - soit tu te fixes une règle de formatage de tes chaines de caractères en amont, pour qu'elles fassent toutes la même taille, en les complétant avec des 0 (=zéro) : par exemple MaVariable1="08.0" et MaVariable2="10.5" (après tu peux simplement utiliser ton strcmp).

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    OK Merci
    Je vais tenter la 1ère solution qui me parait la plus adaptée puisque ces variables sont comme leur nom l'indique des variables et celles-ci sont indiquées par des utilisateurs donc pas possible de les formater comme tu dis dans la 2è solution.
    Je vais tester ça et te tiens informé.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Merci pour l'info.
    La fonction strtod() me permet donc de comparer mes variables.
    Merci

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Korben-Dallas Voir le message
    La fonction strtod() me permet donc de comparer mes variables.
    Euh non, pas tout à fait.
    En fait, elle a juste pour but de convertir une string en double. Ensuite, une fois que tu as en main tes 2 doubles correspondant aux valeurs littérales de tes 2 strings, tu peux les comparer de façon classique...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Merci
    C'est justement ce que j'ai fait.

    Utilisation de la fonction strtod() afin de convertir mes variables chaine en double et ensuite et seulement ensuite je les ai comparées à l'aide d'un IF()

    Et là ça marche impec.

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

Discussions similaires

  1. Comparer des chaines de caractères comme des nombres
    Par PhilLU dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/11/2014, 13h39
  2. Réponses: 2
    Dernier message: 07/08/2012, 16h20
  3. Chaine de caractères contenant des antislash
    Par Mides dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 27/04/2012, 09h32
  4. Réponses: 4
    Dernier message: 24/10/2011, 12h17
  5. Chaine de caractère, contenant des variables, à éxecuter
    Par kerozenium dans le forum Développement
    Réponses: 4
    Dernier message: 18/06/2010, 11h25

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