Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Emily en 18 Abril 2017, 11:31 am



Título: ingresar 3 nombres y luego buscar uno entre esos 3 y que me diga la posicion
Publicado por: Emily en 18 Abril 2017, 11:31 am
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

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main ()
  5. {
  6.    char array[3][30];
  7.    char nombre[30];
  8.    char am[30];
  9.    char ap[30];
  10.    char busq[30];
  11.    int t=1;
  12.        for (int i=0;i<3;i++)
  13.        {
  14.          printf ("Ingrese su nombre\n");
  15.          gets(nombre);
  16.          printf ("Ingrese su apellido paterno\n");
  17.          gets(ap);
  18.          printf ("Ingrese su apellido materno\n");
  19.          gets(am);
  20.          strcat(nombre," ");
  21.          strcat(nombre,ap);
  22.          strcat(nombre," ");
  23.          strcat(nombre,am);
  24.          strcat(nombre," ");
  25.          strcat(array[i],nombre);    
  26.        }
  27.    printf ("Nombre a buscar...\n");
  28.    gets(busq);
  29.    for (int i=0;i<3;i++)
  30.    {
  31.    if (strcmp(busq,array[i])==0)
  32.     {printf ("El nombre esta en la posicion %d\n",i+1);
  33.     t=0;
  34.     }
  35.    }
  36.    if (t==1)
  37.    printf("El nombre no existe");
  38.    return 0;
  39.    system ("pause");
  40. }


· Títulos deben ser descriptivos
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: AYUDA!!! con un programa en C
Publicado por: MAFUS en 18 Abril 2017, 18:20 pm
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.