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 :

Convertir un nombre en chaîne de caractères


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de nl.smart
    Homme Profil pro
    ouvrier
    Inscrit en
    Avril 2019
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 175
    Par défaut Convertir un nombre en chaîne de caractères
    Bonjour,

    Je cherche à envoyer une variable int à une chaîne, ce qui peut s'avérer utile pour manipuler les fonctions de chaînes

    Ci-après un exemple de code qui ne fonctionne malheureusement pas :

    Code : 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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main()
    {
        int a = 10; // variable à envoyer dans la chaîne ci-dessous
     
        char chaine = (char) a ;
     
        char *c = strstr(&chaine, '0'); // fonction strchr qui cherchera le chiffre 0 dans la chaîne qui vaut ici 10
     
        if (c != NULL)
        {
            printf("\n La chaîne '%c' contient le chiffre '%c' \n",chaine, *c); // si le code fonctionnait ce printf devrait s'afficher
        }
        else
        {
            printf("\n La chaîne '%c' ne contient pas le chiffre '%c' \n",chaine, *c);
        }
     
        return 0;
    }
    Je code avec qt creator, pas de warning avec le code ci-dessus.

    Vous remerciant par avance pour vos lumières,

    Nicolas.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 144
    Billets dans le blog
    4
    Par défaut
    Tout ce que fait ton code c'est convertir un int 10 en un char 10.
    Ce que tu veux faire c'est convertir un nombre en chaîne, et ça se passe avec (s)(n)printf, cf FAQ.
    Tu utilises Qt Creator comme IDE ou tu utilises aussi Qt ?
    Qt a sans aucun doute de nombreuses fonctions pour réaliser tout type de conversion.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre éclairé Avatar de nl.smart
    Homme Profil pro
    ouvrier
    Inscrit en
    Avril 2019
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 175
    Par défaut
    Bonjour,

    Merci pour votre réponse, le but du code, envoyer à la fonction un chiffre (10) dans lequel on cherchera si le nombre 0 est présent, la fonction strchr étant capable de chercher un caractère dans une chaîne.

    J'utilise qt creator.

    Je vais regarder du coté de vos liens, puis je reviendrai vous donner les modifications apportées au code,

    bonne journée.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 144
    Billets dans le blog
    4
    Par défaut
    Pour savoir si un chiffre contient un 0 tu pourrais faire un modulo 10 et des division successives.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    bool has0(int v)
    {
      if (v == 0)
        return true;
      do {
        if (v % 10 == 0)
          return true;
        v /= 10;
      } while (v);
      return false;
    }
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre éclairé Avatar de nl.smart
    Homme Profil pro
    ouvrier
    Inscrit en
    Avril 2019
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 175
    Par défaut
    Bonjour,

    sprintf permet d'arriver à mes fins, voir ci-dessous :

    Code : 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
    26
    27
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main()
     
    {
        char chaine[255];
     
        int a = 10;
     
        sprintf(chaine, "%d", a);
     
        char *c = strstr(chaine, "0");
     
        if (c != NULL)
        {
            printf("\n La chaîne '%s' contient le chiffre '%c' \n",chaine, *c);
        }
        else
        {
            printf("\n La chaîne '%s' ne contient pas le chiffre 0 \n",chaine);
        }
     
        return 0;
    }
    Encore merci pour vos lumières, je passe le poste en résolu :-)

    Nicolas.

  6. #6
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 753
    Par défaut
    Hello,

    Puisque tu ne cherches qu'un seul caractère, utlise strchr(): char *c=strchr(s,'0');

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

Discussions similaires

  1. [WM20] Envoyer une chaîne d'un pc vers smartphone android
    Par dakota77 dans le forum Windev Mobile
    Réponses: 0
    Dernier message: 06/04/2016, 21h38
  2. [Applet] Comment envoyer une variable php au java?
    Par abstractor77 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 09/03/2006, 10h18
  3. Envoyer une variable (VARG) à un fichier PERL
    Par Tizard dans le forum Langage
    Réponses: 1
    Dernier message: 20/02/2006, 00h55
  4. envoyer une variable(un tableau) via un lien href
    Par sebduduf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/11/2005, 16h52
  5. Envoyer une variable dans un état
    Par uskiki85 dans le forum Access
    Réponses: 5
    Dernier message: 13/10/2005, 21h44

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