PUBLICIDAD


Búsqueda en arreglos y vectores - Programación en C


Introducción

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.

Marco teórico

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.

Ejercicio

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

Búsqueda en arreglos y vectores - 1


Publicidad


Programa

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;
}

Resultados

Nombre encontrado

Búsqueda en arreglos y vectores - 2

Nombre no encontrado

Búsqueda en arreglos y vectores - 3

Conclusión

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.






Agregar comentario
1500
¿Cual es el siguiente número: 2,4,6, ..?
Comentarios
(0)
No hay comentarios todavía ¡Sé el primero en comentar!

©2017-2021 Solución Ingenieril. Todos los derechos reservados