logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [C] Donner valeure numerique d'une lettre  (Lu 2399 fois)
lovenunu
Beta testeur

Profil challenge

Classement : 21/54283

Membre Complet
*
Hors ligne Hors ligne
Messages: 171


Voir le profil
« 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    ).

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 

Merci d'avance de vos réponses
Journalisée

Tant pis je remplacerai ma nuit par une sieste.
Spl3en

Profil challenge

Classement : 145/54283

Membre Junior
**
Hors ligne Hors ligne
Messages: 53


Voir le profil
« #1 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;
}
Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54283

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #2 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);
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
Pages: [1]
  Imprimer  
 
Aller à: