Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: JonaLamper en 25 Octubre 2015, 17:10 pm



Título: Pasar letras a números
Publicado por: JonaLamper en 25 Octubre 2015, 17:10 pm
Buenas,

Estaba buscando algún pequeño programa al que yo pudiera pasarle un string "hola que tal" (por ejemplo) y me sacara por pantalla a qué número del alfabeto corresponde cada letra (tomando a = 1).

¿Alguien tiene algo parecido?

Muchísimas gracias ;D

Edito: He conseguido este programa. Lo estoy probando y casi lo tengo... pero me salta un tipo de error que no sé de dónde puede venir. Dejo el código por si alguien puede echarme una mano.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.  
  6. string texto;
  7. cout << "Ingrese el texto:";
  8. cin >> texto[100];
  9. int numeros[100];
  10.  
  11. for (int i = 0; i < texto.size(); i++){
  12. if ((unsigned char)texto[i] == 164) numeros[i] = 15;
  13. else if (texto[i] < 'o') numeros[i] = texto[i] - 96;
  14. else numeros[i] = texto[i] - 95;
  15. }
  16.  
  17. for (int i = 0; i < texto.size(); i++) cout << numeros[i] << " ";
  18.  
  19. cout << endl;
  20. system("PAUSE");
  21.  
  22. return 0;
  23. }


Título: Re: Pasar letras a números
Publicado por: ivancea96 en 25 Octubre 2015, 18:38 pm
Código
  1. string texto;
  2. cout << "Ingrese el texto:";
  3. cin >> texto[100];
  4. int numeros[100];

Estás pasándole a cin>> 1 caracter (fuera del rango de texto)

texto es una string. Si quieres leer una linea y guardarla en él, pon:

Código
  1. getline(cin, texto);

Y en caso de que la cadena tenga más de 100 letras, int numeros[100] no serviría. Pon:
Código
  1. int numeros[texto.size()];
O utiliza un vector.