C++ / Tirer la première lettre d'un mot et la convertir en chiffre

Résolu
Anat94 -  
Anat944 Messages postés 7 Statut Membre -
Bonjour,
J'essaye de faire fonctionner un programme en c++ mais sans succès....
L'utilisateur doit saisir un nom et mon programme prends la première lettre et la convertit en chiffre ( A=1,B=2 etc....) . Cependant je n'y arrive pas.... Je pense qu'il y a un soucis dans mon tableau mais impossible de le résoudre.
Par avance merci .
Un novice en programmation.


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main()
{
char prem[10];
cin >> prem;
char nom = prem[0];
int nbe;
nbe = nom;
cout <<nbe;
}



Configuration: Windows / Chrome 76.0.3809.132
A voir également:

1 réponse

[Dal] Messages postés 6373 Statut Contributeur 1 106
 
Salut Anat94,

Ce que tu obtiens, c'est le code ASCII du caractère :

http://www.asciitable.com/

puisque les codes ASCII des majuscules augmentent selon l'ordre alphabétique, pour faire correspondre le 'A' à 1, 'B' à 2, etc. il suffit d'effectuer une soustraction du code ASCII du caractère majuscule considéré par le code de 'A' et d'y ajouter 1.


Dal
0
Anat94
 
merci de votre reponse cependant je ne comprends pas.
pour avoir A ( ASII = 10) je soustrait 10 a quoi? a 61( code ASII de a)?
Et comment faire pour que ce soit automatique pour toutes les lettres?
merci d'avance !
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
regarde bien la table ASCII (pas ASII), le code ASCII de 'A' en base décimale est 65 et celui de 'a' est 97.

cependant, tu n'as pas besoin de te soucier de connaître ce numéro.

tu peux faire :
int nbe = toupper(prem[0]) - 'A' + 1;
pour :
  • convertir la première lettre en majuscules, si elle n'est pas déjà en majuscules
  • soustraire au code ASCII de la première lettre en majuscules la valeur ASCII du char 'A'
  • ajouter 1 au résultat, puisque tu veux faire partir tes nombres de 1 et non de 0
0
Anat94
 
merci beaucoup mais je suis oblige de faire sa pour les 26 lettre de l'alphabet ??
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
non, cela fonctionne pour toute lettre majuscule présente dans la table ASCII de A à Z, car, comme je te l'indiquais dès mon premier message, les codes ASCII suivent cet ordre.
0
Anat944 Messages postés 7 Statut Membre > [Dal] Messages postés 6373 Statut Contributeur
 
J'ai compris, je ne souhaite pas avoir le copde ASII de la lettre mais son rang dans l'alphabet A=1 B=2 C=3 D=4 etc...
Une idée?
0