Código
#include <string.h> #include <limits.h> #include <stdio.h> #include <ctype.h> void get_longest_prefix(char dest[], char *strings[], unsigned int num_strings); int main() { char *strings[3][2] = {{"Planeta", "Platano"}, {"planetoide", "Platino"}, {"planetario", "Placenta"}}; char result[16]; get_longest_prefix(result, (char **)strings, sizeof(strings)/sizeof(char *)); /*unsigned int i; for(i = 0; i < 16; i++) fprintf(stdout, "%u\n", result[i]);*/ return 0; } void get_longest_prefix(char dest[], char *strings[], unsigned int num_strings) { // No pongo el contenido de la función para no spoilear al que preguntó sobre el ejercicio xD }
Salida:
Código:
Longest common prefix: pla _
Dense cuenta de que se imprime un espacio entre el último carácter y el guión de la consola.
Lo más extraño de todo es que si descomento el fragmento de código que me muestra la cadena en su valor numérico, este carácter de fin de archivo no se imprime. Si descomento el fragmento la salida queda:
Código:
112
108
97
0
0
0
0
0
5
0
0
0
0
0
0
0
Longest common prefix: pla_
Como ven, ahora no hay espacio entre la última a y el guión.
_______________________
NOTA ACLARATORIA. Sé que es un carácter de fin de archivo porque copié de la consola el carácter y lo pegué en un documento con la misma codificación que la consola (OEM-850), y luego abrí el archivo con HxD (visor hexadecimal) y vi que el carácter era 0xFF