PUBLICIDAD


Ordenación alfabética en Arreglos (Arrays) - Programación en C


Introducción

En este artículo analizaremos un ejercicio de programación en lenguaje C sobre cómo ordenar un arreglo de varios renglones en forma alfabética. Esto es algo muy utilizado en una gran cantidad de programas, por ejemplo, en una base de datos con nombres guardados, ya que en ocasiones se nos solicita ordenarlos alfabéticamente.

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 número negativo y finalmente si la primer cadena es mayor que la segunda devolverá un numero positivo. Si deseas saber más sobre esta función puedes visitar este artículo: Comparación de cadenas con función STRCMP.

Ejercicio

Realizar un programa en el que solicitemos ingresar 5 nombres de máximo 10 caracteres, una vez ingresados este debe ordenarlos alfabéticamente. Ya que sea procesada esta información, deberá mostrarlos de manera ordenada.

Diagrama de flujo

Ordenación alfabética en Arreglos (Arrays) - 1


Publicidad


Programa

Código:

/* Ordenación en Arreglos - Por Solución Ingenieril*/
#include <stdio.h> /* Declaración librerías*/
#include <stdlib.h>
#include <string.h>

int main(){
	int ciclo_A,ciclo_B; //Ciclos que ayudaran a ordenar el arreglo
	char nombre[5][10]; //Arreglo que guardara los nombres
	char aux[20]; //Vector auxiliar que guardara nombres temporalmente
	
	//Ciclo en el que solicitamos los nombres a ingresar
	for(ciclo_A=0;ciclo_A<5;ciclo_A++){
		printf("Ingresa un nombre: ");
		scanf("%s",&nombre[ciclo_A]);
	} 
	
	
	for(ciclo_A=1;ciclo_A<6;ciclo_A++) //Ciclo que se repetirá 5 veces para ordenar cada nombre
  		for(ciclo_B=0;ciclo_B<5-ciclo_A;ciclo_B++) //Ciclo que ordenara un nombre, se va restando pues en cada vuelta queda ordenado el ultimo nombre
    		 if(strcmp(nombre[ciclo_B],nombre[ciclo_B+1])>0) //Si el nombre actual es mayor al siguiente nombre...
        	{
        		strcpy(aux,nombre[ciclo_B]); //Guardamos el nombre actual en Aux
        		strcpy(nombre[ciclo_B],nombre[ciclo_B+1]); //Pasamos el nombre siguiente al actual
        		strcpy(nombre[ciclo_B+1],aux); //Pasamos el Aux al siguiente
    	    }
    	    
	printf("\n \n---- NOMBRES ORDENADOS ---- \n");
	//Mostramos los nombres ordenados
	for(ciclo_A=0;ciclo_A<5;ciclo_A++){
		printf("%s \n",nombre[ciclo_A]);
	} 
	
	return 0;		
}

Resultados

Ordenación alfabética en Arreglos (Arrays) - 2

Conclusión

En este ejercicio analizamos como utilizar la función “strcmp” para ordenar un arreglo en forma alfabética, además, mostramos como sería la representación gráfica de este programa, pudiendo así analizar el manejo de arreglos y ciclos anidados en un diagrama de flujo. Este tipo de programas es muy útiles a la hora de manejar bases de datos, en donde queremos ordenar alfabéticamente, por ejemplo, los nombres ingresados.






Agregar comentario
1500
¿Cuantas letras hay en la palabra ¨Dos¨?
Comentarios
(2)
Gravatar
Dani Manden dice...

Genial, gracias

Gravatar
Lucas dice...

Hola y gracias por el foro. Quisiera saber como hacer lo mismo pero con la segunda letra de la palabra. Pude ordenar la estructura que necesitaba pero me quedaron desordenadas las segundas letras. Sé que se puede hacer con otro ciclo for pero no se como comparar con strcmp las segundas letras de las palabras.

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