convertir une variable en chaine de caractere
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

convertir une variable en chaine de caractere



  1. #1
    galou32

    convertir une variable en chaine de caractere


    ------

    Bonjour,

    dans le programme ci dessous, la fonction void lcd_send_string (char *str);

    fonctionne très bien, si je lui met comme chaine de caractère un texte entre guillemet. ex "texte"

    cependant j'aimerais remplacer ce texte par une variable en l’occurrence tab




    Code PHP:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    void lcd_send_string (char *str);
    void lcd_send_data (char data); 
    int main ()
    {

        
    int potentiometre =1268;
        
    char tab[5]={0};
        
    sprintf(tab"%c"potentiometre);
        
    lcd_send_string ("texte"); // j'aimerais  : lcd_send_string (tab); avec tab ma variable chaine de caractère


       
    return(0);
    }

    void lcd_send_string (char *str)
    {

        while (*
    strlcd_send_data (*str++);

    }

    void lcd_send_data (char data)
    {

        
    printf("La chaîne de caractères est : %c \n",data); // j'ai simplifié :normalement cette fonction envoi sur LCD par I2C


    Merci

    -----

  2. #2
    Jack
    Modérateur

    Re : convertir une variable en chaine de caractere

    Bonjour,
    je ne vois pas où est le problème. lcd_send_string (tab); doit fonctionner.

    Tu ne nous dis ni si le problème est à la compilation ou à l'exécution, donc difficile de savoir ce qui ne va pas.

    PS : mets des balises CODE et non pas PHP ou QUOTE. Merci
    Dernière modification par Jack ; 08/08/2022 à 21h49.

  3. #3
    umfred

    Re : convertir une variable en chaine de caractere

    un des problèmes que tu vas avoir c'est que tu utilises %c qui indique 1 caractère dans sprintf; or potentiometre est un entier, donc %d ou %i (ou %u (unsigned int) si potentiometre est toujours positif)

  4. #4
    galou32

    Re : convertir une variable en chaine de caractere

    Bonjour,

    Jack j'ai pris note pour les balises, c'était bien un problème à l’exécution : l'affichage du printf donnait des caractères bizarres avec tab en variable.

    en effet avec %d tous fonctionne très bien,même mon programme original sur l'afficheur LCD.

    merci à vous deux

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : convertir une variable en chaine de caractere

    Je ne comprends donc pas le problème posé à l'origine: que tu affiches directement la chaine "hello" ou le contenu du tableau tab, le problème d'affichage devait être identique.

  7. #6
    galou32

    Re : convertir une variable en chaine de caractere

    Bonjour Jack,

    je reprend juste le main :

    si j'écris cela :
    Code:
    int potentiometre =61;
        char tab[5]={0};
        sprintf(tab, "%c", potentiometre); //si %c alors le resultat sera '=' car 61 vaut '='
                                                         // si %d ou %u (unsigned int) alors le resultat sera '61'
    
    	lcd_send_string ("tab"); 
       return(0);
    il m’écrira : "tab"
    si maintenant j'écris cela :
    Code:
    int potentiometre =61;
        char tab[5]={0};
        sprintf(tab, "%c", potentiometre); //si %c alors le resultat sera '=' car 61 vaut '='
                                          // si %d ou %u (unsigned int) alors le resultat sera '61'
    
    	lcd_send_string (tab); // j'aimerais  : lcd_send_string (tab); avec tab ma variable chaine de caractère
       return(0);
    il m’écrira : "=", en fait j'ai compris avec la réponse de Umfred, que le compilateur va chercher le caractère %c n°61 dans la table ASCII
    et comme je mettais 1268, et bien dans la table ASCII, 1268 !!!!!

  8. #7
    Jack
    Modérateur

    Re : convertir une variable en chaine de caractere

    Oui, j'ai bien compris.
    Mais comme ta question originelle était de savoir si tu pouvais afficher une chaine identifiée par une variable dans la fonction lcd_send_string et que tu n'en parlais plus, je me demandais si tu avais obtenu toutes tes réponses.

  9. #8
    galou32

    Re : convertir une variable en chaine de caractere

    par contre j'aimerais m'assurer que j'ai bien compris le code, qui ne vient pas de moi (cela fait 4 semaines que je me suis mis au language C)

    lorsque le programmeur écrit : lcd_send_string (tab); tab correspond bien à l'adresse du tableau? ...du début du tableau?

    lorsque le programmeur écrit :

    Code:
    void lcd_send_string (char *str)
    {
        while (*str) lcd_send_data (*str++);
    }
    le pointeur (char *str) va chercher (tab), donc la valeur contenu dans l'adresse du début du tableau, puis l'envoie à la fct send data,
    en incrémentant l'adresse tab du tableau par (*str++)
    et tout cela tant que il ne rencontre pas 1 caractère nul \0....

    Merci

    bon c'est comme cela que je le comprend... c'est pas évident

  10. #9
    Jack
    Modérateur

    Re : convertir une variable en chaine de caractere

    Citation Envoyé par galou32 Voir le message
    le pointeur (char *str) va chercher (tab), donc la valeur contenu dans l'adresse du début du tableau, puis l'envoie à la fct send data,
    en incrémentant l'adresse tab du tableau par (*str++)
    et tout cela tant que il ne rencontre pas 1 caractère nul \0....
    Oui, tu as bien compris le principe.
    Pour être plus précis, str est un pointeur local à la fonction, et qui contient la même adresse que celle de tab. str pointe donc bien le premier caractère du tableau comme tu l'as compris.
    *str correspond à la donnée stockée à l'adresse définie par le pointeur str.
    Dernière modification par Jack ; 09/08/2022 à 19h32.

  11. #10
    galou32

    Re : convertir une variable en chaine de caractere

    Merci Jack pour ces précisions

Discussions similaires

  1. chaine de caractère vers variable en C
    Par invite7455406a dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 29/03/2020, 17h36
  2. Convertir une valeur numérique en chaine de caractère en utf-8
    Par invitefb0abd7b dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 01/04/2018, 10h08
  3. [C] Concaténer chaine de caractère + caractère
    Par invite48ca7510 dans le forum Programmation et langages, Algorithmique
    Réponses: 17
    Dernier message: 26/01/2013, 12h43
  4. chaine de caractère
    Par invite9f95f6e7 dans le forum Programmation et langages, Algorithmique
    Réponses: 27
    Dernier message: 01/01/2012, 18h38
  5. Chaine de caractère C++
    Par invitee5fedd72 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 06/03/2008, 21h29