¿La funcion gets requiere que resere espacio para el puntero a un char? (si es asi me complicaria mucho la vida :S)
Claro que necesitas reservar espacio, como todas las variables, siento complicarte la vida.
Tengo 2 noticias, una buena y una mala
.
La buena es que no es necesario que utilices un puntero a char, puedes usar un arreglo de char (char cadena[80])
La mala es que de todas formas necesitas tener cuidado al usar gets, porque si no reservas suficiente espacio para la cadena que vas a leer, sea con punteros o con arreglos, puedes sobreescribir la memoria, te recomendaria que utilizaras en su lugar fgets:
fgets (cadena
, 80, stdin
);
donde 80 es el numero de caracteres a leer y stdin, es la entrada estandar.
¿Como puedo hacer que dada una cadena con espacios ponga en MAYUSCULAS la primera letra de cada palabra asi: "Un Ejemplo"?
Tienes que crear tu propia funcion, puedes usar strtok para ayudarte.
¿Para comparar que no haya nombres iguales hay alguna forma de acceder al nombre sin la clave o deberia cambiar la clave a nombre?
Esto ultimo no lo entendi muy bien, mi respuesta seria que depende de lo que quieras hacer, si necesitas la clave, entonces tienes que hacer una comparacion por nombre tambien. Si no la necesitas, usa nombre directamente como clave.
¿Hay alguna funcion que de una lista te ordene alfabeticamente los nombres? (supongo que no, y tendre que hacerla xD)
Asi es, algunos compiladores soportan una funcion llamada qsort, aunque nunca la he usado, siempre implemento mis ordenaciones