convetir cadena a int en C

Iniciado por estudiante_1, 23 Julio 2015, 00:45 AM

0 Miembros y 1 Visitante están viendo este tema.

estudiante_1

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

engel lex

#1
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

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

estudiante_1

 Siempre es bueno aclarar conceptos, pero entonces que utilizo para convertir un char a int?

engel lex

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"
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

estudiante_1

Gracias, y si quiero hacerlo con un nombre, recorro la cadena con un for?

ivancea96

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