Test Foro de elhacker.net SMF 2.1

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

#include <stdio.h>

int main(){
char letra = 'a';
letra++;
printf("%c",letra);

return 0;
}


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).