Rufux Se trata de C. Viene especificado en el texto.
ElenaJuarez : Bienvenida al foro.
No se muy bien lo que quieres pero creo que es esto:
Código C:
Ver original#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_NOMBRES 100
#define MAX_LETRAS 25
struct BD{
char nombre[MAX_NOMBRES][MAX_LETRAS]; //100 nombres de maximo 24 caracteres( No ocupar el ultimo ;) )
};
int main (){
int i, j;
struct BD *p, datos;
int temp = 0;
p = &datos;
//100 nombres de no mas de 24 caracteres. La usaremos para no estar rellenando a mano XD
char arreglo[MAX_NOMBRES][MAX_LETRAS] = {
"Karla" , "Reyna" , "Ana" , "Gina" , "Georgina" , //linea1
"Joan" , "Mario" , "Enrique" , "Maria" , "Margo" ,
"Lupe" , "Guadalupe" , "Erika" , "Marcuz" , "Raquel" ,
"Leticia" , "Carlos" , "Luz" , "Elena" , "Pablo" ,
"Jose" , "Juan" , "Pedro" , "Xochil" , "Pepe" ,
"Kiju" , "Rebeca" , "Rodrigo" , "Raul" , "Adile" ,
"Janeth" , "Daniel" , "Dante" ,"Eduardo" , "Emmanuel" ,
"Esther" , "Francia" , "Federico" , "Federica" , "Fausto" ,
"Gabriel" , "Gustavo" , "German" , "Hugo" , "Israel" ,
"Isabel" , "Irma" , "Lucia" , "Lucy" , "Luz" ,
"Luis" , "Luisa" , "Lucrecia" , "Marcos" , "Manuel" ,
"Manuela" , "Mayla" , "Nayla" , "Teodoro" , "Teofilo" ,
"Teofilito" , "Argenis" , "Delia" , "Jesus" , "Jim" ,
"Reyna" , "Marce" , "Paco" , "Francisco" , "Javier" ,
"Xavier" , "Johan" , "Joana" , "Johana" , "Lourdes" ,
"Rebeca" , "Nathasa" , "Elizabeth" , "Miriam" , "Yuri" ,
"Dum" , "Victor" , "Victoria" , "Marta" , "Martin" ,
"Mateo" , "Matias" , "Monica" , "Moises" , "Mirta" ,
"Eloy" , "Elsa" , "Emilia" , "Estela" , "Querubin" ,
"Casimiro" , "Catalina" , "Calletano" , "Ignacio" , "Zazaza" //linea20
};
//cargamos los nombres a la estructura de forma desordenada desde el puntero y lo imprimimos.
for ( i = 0; i < MAX_NOMBRES; i++ ) {
strcpy ( &(p
->nombre
[i
][0]), arreglo
[i
]); printf ( "\n %d \t%s", i
+1, p
->nombre
[i
] ); }
//Ordenamos los nombres
printf("\n\nOrdenando...\n\n"); for ( i = 0; i < MAX_NOMBRES; i++ ){
for ( j = 0; j < MAX_NOMBRES; j++ ) {
temp
= strcmp ( &p
->nombre
[j
][0], &p
->nombre
[j
+ 1][0] );
if ( temp > 0 ) {
strcpy ( p
->nombre
[0], p
->nombre
[j
] ); strcpy ( p
->nombre
[j
], p
->nombre
[j
+ 1] ); strcpy ( p
->nombre
[j
+ 1], p
->nombre
[0] ); }
}
}
//volvemos a imprimir ordenados.
for ( i = 0; i < MAX_NOMBRES; i++ ) {
printf ( "\n %d \t%s", i
+ 1, p
->nombre
[i
] ); }
return 0;
}
Cuando tengas que hacer: *(puntero).nombre puedes hacerlo p->nombre"Es lo mismo" pero mas fácil.
En la estructura tengo 100 nombres de 25 letras cada. Nunca usamos la ultima en el caso de ser char.
luego creo un objeto de la estructura y hago que p apunte a ese objeto.
Luego de tener el puntero afinado le cargo los 100 nombres del arreglo para no tener que estar llenando nada a mano XD
Luego se ordena de forma parecida a la que comentas y luego después imprimimos el resultado.
No se si es esto lo que quieres... Espero que sirva
Suerte.