NewbieContest

Programmation => Langages compilés => Discussion démarrée par: lovenunu le 26 Décembre 2010 à 03:10:47



Titre: [C] Donner valeure numerique d'une lettre
Posté par: lovenunu le 26 Décembre 2010 à 03:10:47
Bonjour tout le monde !
J'aurais juste une question toute simple, existe-t'il une fonction qui permette de donner la valeure numerique ( base 10, 16, 8 ou 2, 3, 4, 21 peut importe   :lol: ).

Avec printf, on peut, mais forcement ca affiche la valeure ...

Par un petit bricolage, j'y suis arrivé

Code:
int asciitodeci(char lettre[]) {
    //Table lettres
    char ascii[]= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    //Variables
    int t = 0;
    int debut = 0;

    for(t; t <53; t++ )
    {
        //On cherche dans les lettres minuscules
        if(t<26) {
        debut = 97;
        }
        //Si on trouve rien, on va dans les majuscules
        else {
        debut = 65;
        }

    if(lettre == ascii[t]) {
    //Si la lettre demandée est la meme que celle qu'on étudie, on retourne la valeure numérique.
        return debut+t;
    }}
}

Mais si il y avait une fonction déjà toute faite, ca serai quand meme plus ... mieux  :rolleyes:

Merci d'avance de vos réponses :)


Titre: Re : [C] Donner valeure numerique d'une lettre
Posté par: Spl3en le 26 Décembre 2010 à 04:33:04
Salut,

Citation
Avec printf, on peut, mais forcement ca affiche la valeure ...
Pourquoi ne pas utiliser sprintf alors si printf te convient ? ;)
Ca donne un code un peu tordu, mais fonctionnel pour pas des masses de lignes.

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

int main ()
{
    char *string = "lovenunu";
    int string_len = strlen(string);
    char **res = malloc(sizeof(char *) * (string_len));
    int i;

    for (i = 0; i < string_len; i++)
    {
        res[i] = malloc(2 + 1);  // Il y a deux hexadécimales pour une lettre
        sprintf(res[i], "%x", string[i]);

        printf("Valeur hexadecimale de %c : %s\n", string[i], res[i]);
    }

    return 0;
}


Titre: Re : [C] Donner valeure numerique d'une lettre
Posté par: _o_ le 26 Décembre 2010 à 09:56:26
En C, un char est un octet, que l'on peut utiliser indifféremment avec des caractères ou des nombres.

Code:
char c = 'a';
printf("Valeur du caractère %c : %d\n", c, c);
c=102;
printf("Valeur du caractère %c : %d\n", c, c);