En ocasiones necesitamos borrar información de un arreglo (Array), por ejemplo, si tenemos una base de datos con nombres de usuarios y queremos borrar algún nombre. En este artículo les explicaremos un ejercicio de cómo borrar datos o casillas de un arreglo en un programa en lenguaje C.
Función “strcmp”: Función que sirve para comparar dos cadenas de caracteres, si las cadenas son iguales te devolverá un “0”. Si deseas saber más sobre esta función puedes visitar este artículo: Comparación de cadenas con función STRCMP.
Realizar un programa en el que el usuario ingrese 6 nombres de 10 caracteres máximo, después se solicitará cual nombre desea borrar, y el programa debe de ser capaz de borrar el nombre ingresado.
Código:
/* Borrar elementos en Arreglos - Por Solución Ingenieril*/ #include <stdio.h> /* Declaración librerías*/ #include <stdlib.h> #include <string.h> int main(){ int contador,encontro,posicion,respuesta; //Variables de ciclos y banderas char nombre[6][10]; //Arreglo que guardara los nombres char nombre_borrar[10]; //Vector que guardara el nombre a borrar //Ciclo en el que solicitamos los nombres a ingresar for(contador=0;contador<6;contador++){ printf("Ingresa un nombre: "); scanf("%s",&nombre[contador]); } encontro = 0; //Inicializamos variable que indica si encontró el nombre posicion = 0; //Inicializamos variable que indica la posición del nombre encontrado //Preguntamos el nombre que quiere borrar y lo guardamos printf("\n Que nombre quieres borrar? "); scanf("%s",&nombre_borrar); //Ciclo que buscara el nombre a borrar for(contador=0;contador<6;contador++){ if(strcmp(nombre_borrar, nombre[contador])==0){ //Comparamos y si encontramos el nombre... encontro = 1; //Activamos bandera de que encontró el nombre posicion = contador; //Y guardamos la posición en donde lo encontró break; //Rompemos el ciclo } } if(encontro==1){ //Si encontró el nombre a borrar... //Entramos a un ciclo que recorrerá los nombres desde la posición que lo encontró... //... borrando así el nombre que indicamos que queríamos borrar for(contador = posicion; contador < 6; contador++){ strcpy(nombre[contador], nombre[contador + 1]); } printf("\n -- MOSTRANDO NOMBRES -- \n"); for(contador=0;contador<6;contador++){ printf("%s \n",nombre[contador]); } } else //Si no encontró el nombre a borrar... printf("\n No se encontro ese nombre \n"); return 0; } |
---|
Borrando elementos del Array
No encontró el nombre a eliminar
En este artículo les mostramos un ejercicio en el cual debíamos borrar nombres de una “base de datos” según el usuario indicaba. Además les proporcionamos el diagrama de flujo, para así puedan observar cómo se representaría de manera gráfica.