Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: alejandrodiaz en 13 Julio 2015, 03:12 am



Título: ¿Como hacer una lista de nombres usando array con lenguaje C?
Publicado por: alejandrodiaz en 13 Julio 2015, 03:12 am
Buenas a todos

Soy muy novato programando y me estoy iniciando con lenguaje C, así que pido que disculpen mi gran ignorancia.

Tengo un ejercicio de arrays el cual dice:

Se tiene una lista de n nombres, escribir un programa que solicite el nombre de un alumno y busque el nombre del alumno en la lista.

Para esto no debo usar ni punteros ni registros, solo array y lo más básico de C (bucles etc).

He leído y he visto en youtube muchos ejercicios de comparación de cadenas pero siempre tienen un solo nombre establecido, no una lista, ejemplo:

Código:
char nombre[10] ="maria";
char nombre2[10];

Allí se supone que en "nombre2" se guarda lo que introduce el usuario y se compara usando ctrcmp con el array "nombre".

Hasta allí todo bien, pero mi pregunta es ¿si es posible tener mas nombres guardados en el array "nombre" y como hacerlo?

Quise guardar varios nombres en una array de este modo:

Código:
char [10]= "maria";"jose";"luis";

Pero luego supe que una array solo almacena un caracter por cada elemento (pense que almacenaba cadenas enteras en cada elemento). No sé si es que deba crear más arrays, pero en una lista con más de cien alumnos sería un codigo muy extenso.

En fin, espero me hayan entendido y me puedan ayudar.



Título: Re: ¿Como hacer una lista de nombres usando array con lenguaje C?
Publicado por: crack81 en 13 Julio 2015, 05:19 am
Que bueno que aprendas a programar en c sigue asi
Bueno tu lo que andas buscando es un arreglo bidimensional o tambien llamado de dos divisones

prueba esto:

Código
  1. int main()
  2. {
  3. char nombre[10]="maria";
  4.  
  5. //Esto es un arreglo bidimensinal
  6. //el primer corcheta es la cantidad de nombres
  7. //el segundo corchete es el tamano maximo de caracteres por cada nombre
  8. char nombres[4][10]={"jose","maria","rosa","sara"};
  9.  
  10. int i;
  11. for(i=0;i<4;i++){
  12.  printf("%s\n",nombres[i]);   //mostramos todos los nombres
  13.  if(strcmp(nombre,nombres[i])==0){
  14. printf("se encontro el nombre en la lista\n");//si encuentra el nombre muestra el mensaje
  15.  }
  16. }
  17.  
  18. return 0;
  19. }


Título: Re: ¿Como hacer una lista de nombres usando array con lenguaje C?
Publicado por: alejandrodiaz en 13 Julio 2015, 18:24 pm
Un millón de gracias amigo crack81, era exactamente lo que estaba buscando.

Había leído de arrays bidimensional pero ejemplos con enteros no con caracteres y juraba que necesitaba un array unidimensional.

Al fin pude hacer el ejercicio quedandome de esta forma


Código
  1. int main()
  2. {
  3.    char nombres[6][10] = {"maria","teresa","mariana","jose","pedro","juan"};
  4.    char alum[10];
  5.    int cont=0;
  6.  
  7.    printf("Ingrese el nombre del alumno: \n");
  8.    scanf("%s", alum);
  9.  
  10.    int i;
  11.  
  12.    for(i=0; i<6; i++){
  13.            if (strcmp(nombres[i],alum)==0){
  14.  
  15.                printf("El alumno %s esta registrado\n", nombres[i]);
  16.  
  17.                }else{
  18.                    cont++;
  19.                }
  20.            }
  21.                    if (cont==6){
  22.                        printf("%s no esta registrado",alum);
  23.                    }
  24.  
  25.  
  26.    getch();
  27.    return 0;
  28. }
  29.  
  30.  

Nuevamete gracias!  ;-)