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.