Question langage C
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Question langage C



  1. #1
    invitec77afd19

    Thumbs down Question langage C


    ------

    Bonjour,
    je voudrais savoir comment forcer le type "int" en "char"

    En effet l'objectif pour moi est de faire une comparaison entre le chiffre 8 et le caractere "8"

    Aussi, pour faire la comparaison de 2 char , je peut faire un "strcmp" ?

    Merci

    -----

  2. #2
    argusazure

    Re : Question langage C

    Pour mettre la valeur d'une variable int dans une variable char, un simple cast suffit :

    Code:
    int nChar=8;
    char c=(char)nChar;
    //la variable c a pour valeur 8 (caractère backspace)
    Pour convertir une valeur en caractère, c'est un peu plus sioux.
    Code:
    char c='8';
    int nChar;
    nChar=c-'0';
    //la variable nChar contient la valeur 8 
    
    int nChar=8;
    char c;
    c=nChar+'0';
    //la variable c contient le caractère '8'
    Ceci focntionne car les caractère '0'..'9' sont rangés de façon croissante et consécutive dans la table ascii.

    Pour comparer 2 variables de type char, les opérateurs de comparaison sont suffisants (<,> , ==, != ..)
    Dernière modification par argusazure ; 28/07/2008 à 10h42.

  3. #3
    invitec77afd19

    Re : Question langage C

    ok je teste et je te tiens au courant

    merci beaucoup

  4. #4
    invitec77afd19

    Re : Question langage C

    et comment je fais du coup pour comparer "c" avec le caractere "8" . strcmp sa marche?

  5. A voir en vidéo sur Futura
  6. #5
    invitec77afd19

    Re : Question langage C

    si je fais

    strcmp(c, "8")

    le compilateur me dis:

    invalid conversion from 'char' to 'const char*'

    du coup je c pas comment faire la comparaison

  7. #6
    argusazure

    Thumbs up Re : Question langage C

    strcmp c'est pour comparer les chaines de caractères.
    "8" est une chaine composée seulement du caractère '8'
    '8' est un caractère.

    Code:
    char c;
    switch(c)
    {
    case '0':
        //TODO
       break;
    default:;
    }
    
    if (c!='8' && c>'4')  //'5' ou '6' ou '7' ou '9'
     \\TODO

  8. #7
    Towl

    Re : Question langage C

    attention : '8' et "8" sont deux choses completement différentes :
    '8' correspond au caractère 8.
    "8" correspond à la chaine de caractère '8' + '\0' (caractère final d'une chaine de caractere).

    De plus str(n)cmp() n'utilise que des chaines de caractères.

    Un petit code pour faire les 3 comparaisons possibles :
    Code:
    char cCode = 8; // caractère de code 8
    char cChar = '8'; // caractère 8
    char *str = "8" // chaine de caractère 8
    
    printf("%d - %c\n", cCode, cCode); // affiche "8 - [caractère backspace]"
    printf("%d - %c\n", cChar, cChar); // affiche "56 - 8"
    
    
    // comparaison entre cCode et cChar :
    if (cCode + '0' == cChar)
       ...
    // comparaison de cChar et str 
    if (cChar == *str) // ou alors if(cChar == str[0])
        ...
    // comparaison de cCode et str
    if (cCode + '0' == *str)
        ...
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  9. #8
    invitec77afd19

    Re : Question langage C

    très bonnes explications

    merci à tous

    problème résolu


Discussions similaires

  1. Question langage C
    Par invitec77afd19 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 25/07/2008, 14h54
  2. Question langage C
    Par invitec77afd19 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 24/07/2008, 18h04
  3. Question langage C
    Par invitec77afd19 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 03/07/2008, 09h54
  4. Question langage C
    Par invitec77afd19 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 02/07/2008, 12h02
  5. Question de langage
    Par invite5eef2692 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 14/03/2006, 15h35
Découvrez nos comparatifs produits sur l'informatique et les technologies.