Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: estudiante_1 en 23 Julio 2015, 00:45 am



Título: convetir cadena a int en C
Publicado por: estudiante_1 en 23 Julio 2015, 00:45 am
Cómo hago este ejercicio. He utlizado la función atoi pero al introducir una palabra como Perro, me da 0.
Diseña un programa que lea una cadena y copie en otra una versión cifrada. La cifrado convertirá cada letra (del alfabeto inglés) en la que le sigue en la tabla ASCII (excepto en el caso de las letras z y Z, que serán sustituidas por a y A, respectivamente.)
Gracias por responder mis dudas ::)


Título: Re: convetir cadena a int en C
Publicado por: engel lex en 23 Julio 2015, 00:47 am
no entendi para nada que tiene que ver esto con atoi... atoi es para convertir algo como (char)'1' en (int)1

toda letra es char normalmente y los char se pueden interpretar como numeros siempre que no uses comillas, es decir



Título: Re: convetir cadena a int en C
Publicado por: estudiante_1 en 23 Julio 2015, 00:53 am
 Siempre es bueno aclarar conceptos, pero entonces que utilizo para convertir un char a int?


Título: Re: convetir cadena a int en C
Publicado por: engel lex en 23 Julio 2015, 00:57 am
char se puede tratar como numérico directamente (por que lo es a cierto nivel)

ej

Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4. char letra = 'a';
  5. letra++;
  6. printf("%c",letra);
  7.  
  8. return 0;
  9. }

esto responderá "b"


Título: Re: convetir cadena a int en C
Publicado por: estudiante_1 en 23 Julio 2015, 01:14 am
Gracias, y si quiero hacerlo con un nombre, recorro la cadena con un for?


Título: Re: convetir cadena a int en C
Publicado por: ivancea96 en 23 Julio 2015, 01:56 am
Tú lo has dicho. Solo tienes que sumarle 1 a cada letra, salvo en el caso de que sea 'z' o 'Z'. Eso lo haces con dos if-else.

Como dato, este tipo de cifrado se llama cifrado Cesar. En este caso, con clave 1 (puesto que sumas 1 a cada letra).