entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

comparacion entre cadenas c++

Hola buena, tengo un pequeño problema con un ejercico del libro Programacion en C,C++, Java y UML de Luis Joyanes.
Me encuentro en el apartado de if y switch. y estoy tratando de comparar dos cadenas, una ingresada por el usuario, con otra preestablecida, pero hasta ahora no he podido.
El problema dece lo siguiente.
Escribir un programa que acepte fechas escritas de modo usual y las visualice como tres numeros, por ejemplo. 15 febrero 2008 y la salida sera 15 02 2008.

#include<stdio.h>
int main()
{
    char mes[50];

    printf("Ingresa mes: ");
    //scanf("%s",mes);
    gets(mes);

   if ( mes != 'Enero')
   {
       printf("No son iguales");

   }else{

        printf("Son iguales");
   }

    return 0;
}

if ( strcmp(mes, 'Enero) != 0')

tambien ya intente con la funcion strcmp y no me devuelve lo que nesecito, Si el usuario ingresa Enero, enero, En o en tendria que validar esa cadena y compararla para ver si es igual colocar el valor, que en este casos eria 01 ya que 01 corresponde al mes de enero. Espero y alguien me heche un hilo, por que hay varios problemas en el libro, que esta o mal, y otros un poco complicados. gracias.....

2 Respuestas

1voto

versce123mx Puntos1990

Ya logre, solo que no quedo conforme, por que no muestra el mensaje de error, ya trate con else if anidados y nadamas no lo pude correro, pero dentro de lo que deve hacer ya funciona. no se que avia pasado con la funcion strcmp que no avia funcionado, y y me funciono, anexo el codigo.

#include<stdio.h>

int main()
{

    int dia,ano;
    char mes[50];

    printf("Ingresa fecha completia, utiliza letras para el mes, utilizando minusculas ejemplo (02 junio 2015): ");
    scanf("%d %s %d",&dia,mes,&ano);

    printf("\n");
    if (strcmp(mes,"enero")!=0 && strcmp(mes,"Enero")!=0 && strcmp(mes,"enr")!=0 && strcmp(mes,"Enr")!=0)
    {
        //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

        if (strcmp(mes,"febrero")!=0 && strcmp(mes,"Febrero")!=0 && strcmp(mes,"feb")!=0 && strcmp(mes,"Feb")!=0)
        {
            //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

        if (strcmp(mes,"marzo")!=0 && strcmp(mes,"Marzo")!=0 && strcmp(mes,"mar")!=0 && strcmp(mes,"Mar")!=0)
        {
            //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

            if (strcmp(mes,"abril")!=0 && strcmp(mes,"Abril")!=0 && strcmp(mes,"abr")!=0 && strcmp(mes,"Abr")!=0)
            {
                //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                if (strcmp(mes,"mayo")!=0 && strcmp(mes,"Mayo")!=0 && strcmp(mes,"may")!=0 && strcmp(mes,"May")!=0)
                {
                    //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                    if (strcmp(mes,"junio")!=0 && strcmp(mes,"Junio")!=0 && strcmp(mes,"jun")!=0 && strcmp(mes,"Jun")!=0)
                    {
                        //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                        if (strcmp(mes,"julio")!=0 && strcmp(mes,"Julio")!=0 && strcmp(mes,"jul")!=0 && strcmp(mes,"Jul")!=0)
                        {
                            //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                            if (strcmp(mes,"agosto")!=0 && strcmp(mes,"Agosto")!=0 && strcmp(mes,"ago")!=0 && strcmp(mes,"Ago")!=0)
                            {
                                //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                                if (strcmp(mes,"septiembre")!=0 && strcmp(mes,"Septiembre")!=0 && strcmp(mes,"sep")!=0 && strcmp(mes,"Sep")!=0)
                                {
                                    //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                                    if (strcmp(mes,"octubre")!=0 && strcmp(mes,"Octubre")!=0 && strcmp(mes,"oct")!=0 && strcmp(mes,"Oct")!=0)
                                    {
                                        //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                                        if (strcmp(mes,"noviembre")!=0 && strcmp(mes,"Noviembre")!=0 && strcmp(mes,"nov")!=0 && strcmp(mes,"Nov")!=0)
                                        {
                                            //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");

                                            if (strcmp(mes,"diciembre")!=0 && strcmp(mes,"Diciembre")!=0 && strcmp(mes,"dic")!=0 && strcmp(mes,"Dic")!=0)
                                            {
                                                //printf("Dato invalido, buelve a intentar ingresando otro valor.\n");
                                            }else{
                                                printf("el mes introducido es: %d 12 %d\n",dia,ano);
                                            }
                                        }else{
                                            printf("el mes introducido es: %d 11 %d\n",dia,ano);
                                        }
                                    }else{
                                        printf("el mes introducido es: %d 10 %d\n",dia,ano);
                                    }
                                }else{
                                    printf("el mes introducido es: %d 09 %d\n",dia,ano);
                                }
                            }else{
                                printf("el mes introducido es: %d 08 %d\n",dia,ano);
                            }
                        }else{
                            printf("el mes introducido es: %d 07 %d\n",dia,ano);
                        }
                    }else{
                        printf("el mes introducido es: %d 06 %d\n",dia,ano);
                    }
                }else{
                    printf("el mes introducido es: %d 05 %d\n",dia,ano);
                }
            }else{
                printf("el mes introducido es: %d 04 %d\n",dia,ano);
            }
        }else{
            printf("el mes introducido es: %d 03 %d\n",dia,ano);
        }

        }else{
            printf("el mes introducido es: %d 02 %d\n",dia,ano);
        }

    }else{
        printf("el mes introducido es: %d 01 %d\n",dia,ano);
    }
   return 0;
}

1voto

fisionsensei Puntos680

Intenta con la libreria conio.h y usa cin>> y cout<< para las entradas y salidas respectivamente. En tu comparación maneja el OR: if ( mes != 'Enero' || mes != 'enero')
Espero que con esto quede resuelta tu duda.
Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta