Convertir una cadena a numeros!!!

Varto
15 de Junio del 2004
Necesito hacer lo siguiente y no tengo la menor idea:
Escribir un programa que lea 10 claves Alfanumericas, las claves estarán cmpuestas de una letra (A..I), seguida de tres dígitos (ejemplo: A215), cada letra de la A..I, tendrán los valores 1,2,3,4,5,6,7,8 y 9 respectivamente. Para poder utilizar cualquiera de las funciones HASH(modulo, cuadrado, plegamiento o truncamiento), en el programa transformará la clave A215 en 1215 (A=1) para poder aplicar la funcion escogida. Si alguien me da una idea de como hacerlo, se lo agradecere infinitamente, Gracias!!!

chuidiang
15 de Junio del 2004
Puedes leer la clave con algo como esto

char letra;
int numero;
scanf ("%c%d", &letra, &numero);

Para convertir la letra a numero haces una cuenta simple

int codigo = letra - 'A' + 1;

Esto resta el codigo ascii de la A del codigo ascii de la letra leida. La A quedará como 0, la B como 1, etc. Sumando 1 arreglado.

La clave final la puedes obtener asi

int clave_final = codigo*1000 + numero;

Se bueno