En artículos anteriores estuvimos analizando muchas funciones relacionadas con el manejo de cadena de caracteres, además de explicarles a detalle el tema de arreglos. En este artículo analizaremos un ejercicio de cómo realizar una búsqueda de una palabra dentro de un arreglo mediante ciclos.
strcmp: Función que sirve para comparar dos cadenas de caracteres, si las cadenas son iguales te devolverá un “0”, si la primer cadena es menor que la segunda devolverá un numero negativo y finalmente si la primer cadena es mayor que la segunda devolverá un numero positivo. Si quieres analizar esta función a detalle visita el siguiente artículo: Comparación de cadenas con función strcmp.
Realizar un programa en el que tengamos una base de datos con 5 nombres de no más de 11 caracteres guardados en ella, que son los siguientes: Juan, Graciela, Pedro, Nadia, Víctor. El usuario ingresará un nombre a buscar y el programa deberá indicar si encontró el nombre o no, en caso de que lo haya encontrado indicar la posición del arreglo en el que lo encontró. Diagrama de flujo
Código:
/* Búsqueda lineal en vectores/arreglos - Por Solución Ingenieril*/ #include <stdio.h> /* Declaración librerías*/ #include <stdlib.h> #include <string.h> int main() { char palabra_buscar[10]; //Vector que guardara la palabra a buscar char nombres[4][10] = {"Juan", "Graciela", "Pedro", "Nadia", "Victor"}; //Nombres almacenados en nuestra base int encontro = 0, contador = 0, posicion_encontrada; //Variables de ayuda printf("Introduce el nombre a buscar: ");//Solicitamos y guardamos el nombre a buscar scanf("%s",&palabra_buscar); //Ciclo que buscara la palabra buscada en cada casilla del arreglo "nombres" for(contador=0;contador<5;contador++){ if(strcmp(palabra_buscar, nombres[contador])==0){ //Comparamos la palabra buscada en cada casilla del arreglo encontro = 1; //Si lo encuentra, cambiamos nuestra variable "encontró" posicion_encontrada = contador; //Y guardamos la posición break; //Si lo encuentra, rompemos el ciclo para no seguir buscando } } printf("\n"); if(encontro == 1) //Si encontró el nombre, imprimimos lo siguiente... printf("Tu nombre se encontro! En la posicion %d", posicion_encontrada); else //Si no lo encontró, imprimimos lo siguiente printf("Tu nombre no se encontro"); return 0; } |
---|
Nombre encontrado
Nombre no encontrado
En este artículo analizamos un ejemplo sencillo de cómo manejar un arreglo, cómo declararlo e inicializarlo, además de cómo realizar búsquedas dentro del arreglo mediante un ciclo FOR. También mostramos el programa visto desde un diagrama de flujo para observar su representación gráfica.