como asignar un valor numerico a cada letra del alfabeto en c++?
necesito darle valor numerico a una frase , para ello guardo la frase en un arreglo y a cada letra tengo que darle un valor (por ejemplo a=1,b=2,c=3.....)entonces si digo "SALA"=19+1+12+1
Answers & Comments
Verified answer
Hola
Con anterioridad respondí un pregunta semejante a la tuya, te dejo la url
http://mx.answers.yahoo.com/question/index;_ylt=Av...
Se encuentra en Java, pero allí puedes leer los aspectos teorícos. Te adjunto un ejemplo para C++
char cadena[200];
int i = 0;
cin.getline(cadena, 200, '\n');
while(cadena[i])
{
cout << (int) (cadena[i++] - 65 + 1);
}
>> getline, se encuentra en la librería iostream.h Y sirve para capturar una cadena desde el teclado.
En este caso, me base solo en mayusculas, tu puedes antes convertir el caracter en mayusculas y así podrías aceptar HOLA y hola o bien, hOla , etc.
Para lo anterior puedes utilizar la función toupper, que se encuentra en la librería ctype.h
Lee el enlace que te deje, allí explico como se calcula esto, en breve se utiliza su correspondiente en ASCII y se efectúa una operación aritmetica.
p ej
ASCII de la letra A = 65, recuerda que los caracteres en C++ son números enteros, es decir, si tu pones algo semejante a esto
char c = 'A';
int a = c;
>> cout << (int)c; // te imprimirá, 65
>> cout << (char) (c +1); // te imprimirá B
>> cout << a; // te imprimirá 65;
Saludos.
ups estamos en las mismas, yo necesito hacer un mensaje encriptado y nesesito asiganrle valores a las letras