• Viernes 8 de Noviembre de 2024, 20:58

Autor Tema:  Hacer Referencia A Una Palabra  (Leído 1258 veces)

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Hacer Referencia A Una Palabra
« en: Viernes 13 de Junio de 2008, 23:10 »
0
Hola amigos, quiro hacer algo como esto...

do{
        printf("Ingrese pais:");
        printf("\n1:Panama\n2:Alemania");
        scanf("%i",&a);
    }while(a<1 || a>2);

switch(a)
{
         case 1: printf("10000");
         break;
         case 2: printf("20000");
         break;
}


...pero en ves de almacenar un numero en la variable me gustaria almacenar una palabra, y despues mostrar un algo con un printf segun la opcion, hasta ahora solo lo se hacer de este modo, he tratado de hacerlo almacenando la respuesta en una variable de tipo char, pero eso me impide hacer uso del switch, y hacerlo con un if me sale poco rasonable...


espero me puedan ayudar

saludos

AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
Re: Hacer Referencia A Una Palabra
« Respuesta #1 en: Viernes 13 de Junio de 2008, 23:36 »
0
lo puedes hacer de la siguiente manera

incluir libreria string.h

char pal[30];

 printf("Ingrese Pais: Panama o Alemania ");
 scanf("%s",&pal);

 if(!strcmp(pal,"Panama"))
  printf("Opcion 1");

 if(!strcmp(pal,"Alemania")
 printf("Opcion 2");

Bueno algo asi... :smartass:

espero que sirva de algo  :kicking:
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]


fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: Hacer Referencia A Una Palabra
« Respuesta #2 en: Sábado 14 de Junio de 2008, 00:26 »
0
buena solucion.

tienes varias alternativas. puedes guardar las palabras enun vector tipo *char , y al ingresarun numero, semueva el indice del vector y hacer un printf de la palabra a la que apunta.


pero, sin ir mas lejos, usar IF no es deficiente para nada, desde mi putno de vista , pues todo se traduce a ensamblador luego. el IF es una estructura de direccion de flujo mas primitiva que el IF, eso quiere decir que la momento de traducir tu codigo C a ensamblador, tu switch va a ser traducido a varios IF anidados en ensamblador.

USA IF y punto
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Hacer Referencia A Una Palabra
« Respuesta #3 en: Sábado 14 de Junio de 2008, 00:28 »
0
Cita de: "utz"
...pero en ves de almacenar un numero en la variable me gustaria almacenar una palabra, y despues mostrar un algo con un printf segun la opcion, hasta ahora solo lo se hacer de este modo, he tratado de hacerlo almacenando la respuesta en una variable de tipo char, pero eso me impide hacer uso del switch, y hacerlo con un if me sale poco rasonable...
 
pues lamentablemente el switch/case solo admite valores escalares o sea, numeros enteros, o letras individuales, si necesitas comparar con numeros flotantes, o cademas, debes usar if a fuerza, y en el caso de cadenas, como bien apunta el compañero AnimaSubtilis en su mensaje anterior, debes usar ademas strcmp, o, si usas C++, la clase string.

Saludos :hola:

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================