elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda para guardar como char o como int
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para guardar como char o como int  (Leído 2,735 veces)
ciquee

Desconectado Desconectado

Mensajes: 25



Ver Perfil
Ayuda para guardar como char o como int
« en: 11 Marzo 2019, 14:03 pm »

Hola buenas a todos/as,

Estoy empezando en esto de la programación y haciendo un ejercicio me estoy volviendo loco, y seguro que no será tan difícil... La cuestión es que necesito hacer un programa que pida al usuario un carácter o numero, si es un numero de 1 a 7 diga el día de la semana asociado, y si es un carácter de la A a la G diga el numero que le corresponde, por ejemplo a la b o la B el 2...
Y el problema es que no se como guardar el valor tecleado ya que si es un numero es un int y si es un carácter debe ser un char.

Código:
#include <iostream>
using namespace std;

char caracter;

int main(void) {

cout<<"\nEscribe un carácter: "; cin>>caracter;

if (caracter >= 0 && caracter <= 7)
{
if (caracter == 1 ){
cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Lunes";
}

else if (caracter == 2 ){
cout<<"El dia de la semana asociado al caracter " <<caracter<< " es el Martes";
}

else if (caracter == 3 ){
cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Miercoles";
}

else if (caracter == 4 ){
cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Jueves";
}

else if (caracter == 5 ){
cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Viernes";
}

else if (caracter == 6 ){
cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Sábado";
}

else if (caracter == 7 ){
cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Domingo";
}
}

else if ((caracter >= 'a' && caracter <= 'g') || (caracter >= 'A' && caracter <= 'G'))
{
if (caracter =='a' || caracter == 'A') {
cout<<"El numero asociado al caracter "<<caracter<<" es el 1";
}

if (caracter =='b' || caracter == 'B') {
cout<<"El numero asociado al caracter "<<caracter<<" es el 2";
}

if (caracter =='c' || caracter == 'C') {
cout<<"El numero asociado al caracter "<<caracter<<" es el 3";
}

if (caracter =='d' || caracter == 'D') {
cout<<"El numero asociado al caracter "<<caracter<<" es el 4";
}

if (caracter =='e' || caracter == 'E') {
cout<<"El numero asociado al caracter "<<caracter<<" es el 5";
}

if (caracter =='f' || caracter == 'F') {
cout<<"El numero asociado al caracter "<<caracter<<" es el 6";
}

if (caracter =='g' || caracter == 'G') {
cout<<"El numero asociado al caracter "<<caracter<<" es el 7";
}
}

else {
cout<<"El carater introducido no es un valor alfanumerico aceptado";
}

return 0;
}


Si declaro un char me funciona con los caracteres y si declaro un int me funciona con los números, pero no se como hacer para que me funcione en ambos casos.

¿Alguna ayuda?

Muchas gracias!


En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Ayuda para guardar como char o como int
« Respuesta #1 en: 11 Marzo 2019, 14:17 pm »

Reemplaza los numeros, en las comparaciones. Usa los caracteres en vez.

if( caracter == 0 )

See transforma en

if( caracter == '0' )



En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Ayuda para guardar como char o como int
« Respuesta #2 en: 11 Marzo 2019, 14:24 pm »

Puedes acortar tu programa aprovechando que Las letras son contiguas. Una vez que has detectado que la letra esta entre 'a' y 'g', puedes ver que numero tiene asociado haciendo una operacion:

caracter - 'a' + 1

Esto te da El valor que estas imprimiendo y evitas todos los ifs.

Transforma la letra a minuscula (usando tolower()) para no tener que hacer logica adicional para Las mayusculas.
En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Ayuda para guardar como char o como int
« Respuesta #3 en: 11 Marzo 2019, 14:28 pm »

Puedes evitar loa primeros ifs si guardas todos los dias en un arreglo de strings (suponiendo que lo llamas dias) y despues de comprobar que El caracter esta entre '0' y '9' imprimes

dias[caracter - '0']
En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
dariodr01

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Ayuda para guardar como char o como int
« Respuesta #4 en: 11 Marzo 2019, 15:08 pm »

Hola, tambien puedes hacerlo con case, te dejo un ejemplo.

Código
  1. switch(caracter) {
  2.    case '1':
  3.      cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Lunes";
  4.    break;
  5.    case '2':
  6.      cout<<"El dia de la semana asociado al caracter " <<caracter<< " es el Martes";
  7.    break;
  8.    case '3':
  9.      cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Miercoles";
  10.    break;
  11.    case '4':
  12.      cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Jueves";
  13.    break;
  14.    case '5':
  15.      cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Viernes";
  16.    break;
  17.    case '6':
  18.      cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Sábado";
  19.    break;
  20.    case '7':
  21.      cout<<"El dia de la semana asociado al caracter "<<caracter<< " es el Domingo";
  22.    break;
  23.  }
  24.  
En línea

ciquee

Desconectado Desconectado

Mensajes: 25



Ver Perfil
Re: Ayuda para guardar como char o como int
« Respuesta #5 en: 11 Marzo 2019, 18:24 pm »

Muchísimas gracias CalgaryCorpus, era una tontería pero he estado dándole vueltas más de una hora (bueno, y mas de 2 jajaja).

Gracias también a dariodr01, pero en el ejercicio poner que no podemos utilizar Switch.

Saludos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda! como puedo guardar un archivo en perl
Scripting
Abyss 1 5,353 Último mensaje 30 Noviembre 2004, 15:45 pm
por byebye
Como guardar cambios en base de datos, AYUDA!! PLS
Programación Visual Basic
El_Marine 7 2,090 Último mensaje 8 Agosto 2006, 19:05 pm
por Hans el Topo
como comprimir un CD para guardar mas datos
Software
prosk8er 6 13,476 Último mensaje 24 Febrero 2008, 17:44 pm
por Mordor
[AYUDA] Cómo puedo concatenar un char a un puntero de chars?
Programación C/C++
papita5 8 6,261 Último mensaje 19 Octubre 2011, 20:39 pm
por papita5
Lectura de matríz de char como char** o DWORD*
Programación C/C++
david_BS 3 3,209 Último mensaje 20 Febrero 2012, 20:49 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines