ingresar 3 nombres y luego buscar uno entre esos 3 y que me diga la posicion

Iniciado por Emily, 18 Abril 2017, 11:31 AM

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

Emily

Tengo que ingresar 3 nombres y luego buscar uno entre esos 3 y que me diga en que posicion esta.

mi codigo corre el problema es que nunca busca el nombre solo se va directo al if que dice que el nombre no existe, alguien de favor podria ayudarme

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
   char array[3][30];
   char nombre[30];
   char am[30];
   char ap[30];
   char busq[30];
   int t=1;
       for (int i=0;i<3;i++)
       {
         printf ("Ingrese su nombre\n");
         gets(nombre);
         printf ("Ingrese su apellido paterno\n");
         gets(ap);
         printf ("Ingrese su apellido materno\n");
         gets(am);
         strcat(nombre," ");
         strcat(nombre,ap);
         strcat(nombre," ");
         strcat(nombre,am);
         strcat(nombre," ");
         strcat(array[i],nombre);    
       }
   printf ("Nombre a buscar...\n");
   gets(busq);
   for (int i=0;i<3;i++)
   {
   if (strcmp(busq,array[i])==0)
    {printf ("El nombre esta en la posicion %d\n",i+1);
    t=0;
    }
   }
   if (t==1)
   printf("El nombre no existe");
   return 0;
   system ("pause");
}



· Títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex

MAFUS

Tienes unos cuántos fallos pero el más grave es que usas strcat para llenar array. Esta función concatena cadenas, es decir, busca el valor de fin de cadena de la primera y copia la segunda a partir de ese valor, incluido.

Debes usar strcpy, que lo que hace es copiar la cadena desde el principio.

Ahora tienes unos cuantos errores más que, con el tiempo, aprenderás a solucionar.