Buen dia gente!
Vengo a consultar sobre un problema que tengo con un tp T_T
Estoy en "C"
Resulta que estoy levantado en un buffer contenido de archivos de texto plano, y la idea es ir obteniendo palabras a partir del buffer
Los archivos de texto pueden estar en cualquier idioma
Por ejemplo:
Buffer = "Hola , cómo andan? todo bien gente?, espero que si!
"
Filtrando el buffer debería obtener los siguientes terminos
HOLA, COMO, ANDAN, TODO, BIEN, GENTE, ESPERO, QUE, SI
El filtrado de los signos de puntuación ya lo tengo, tmb manejo el tema de si el buffer me corta una palabra por la mitad y todo eso.
Para el filtrado lo que hago es fijarme que el caracter del buffer (Buffer[Pos]) pertenezca a los intervalos del Ascii [65,90] ^ [97,122] ^ [128,165]
(Segun la tabla del ascii)
El intervalo [65,90] es para las minusculas
El intervalo [97,122] es para las mayusculas
El intervalo [128,165] es para las tildes y otras cosas raras
el problema que tengo con los tildes es que el codigo en 8 bits no pertenece a ese intervalo, o sea, ni siquiera son 8 bits por lo que veo
les dejo un ejemplo del codigo para ver los caracteres
//Un Buffer levantado del disco que vale = Cómo estás
printf("Entre a obtener terminos con el buffer %s\n",buffer
); while (i != caractleidos){
printf ("Caracter del buffer %c\n",buffer
[i
]); printf ("ASCII Caracter del buffer (sin signo) %u\n",buffer
[i
]); printf ("ASCII Caracter del buffer (con signo) %u\n",buffer
[i
]); i++;
}
//Salida por consola:
Caracter del buffer C
ASCII Caracter del buffer
(sin signo
) 67ASCII Caracter del buffer (con signo) 67
Caracter del buffer
ASCII Caracter del buffer
(sin signo
) 4294967235ASCII Caracter del buffer (con signo) -61
Caracter del buffer �
ASCII Caracter del buffer
(sin signo
) 4294967219ASCII Caracter del buffer (con signo) -77
Caracter del buffer m
ASCII Caracter del buffer
(sin signo
) 109ASCII Caracter del buffer (con signo) 109
Caracter del buffer o
ASCII Caracter del buffer
(sin signo
) 111ASCII Caracter del buffer (con signo) 111
Caracter del buffer
ASCII Caracter del buffer
(sin signo
) 32ASCII Caracter del buffer (con signo) 32
Caracter del buffer e
ASCII Caracter del buffer
(sin signo
) 101ASCII Caracter del buffer (con signo) 101
Caracter del buffer s
ASCII Caracter del buffer
(sin signo
) 115ASCII Caracter del buffer (con signo) 115
Caracter del buffer t
ASCII Caracter del buffer
(sin signo
) 116ASCII Caracter del buffer (con signo) 116
Caracter del buffer
ASCII Caracter del buffer
(sin signo
) 4294967235ASCII Caracter del buffer (con signo) -61
Caracter del buffer �
ASCII Caracter del buffer
(sin signo
) 4294967201ASCII Caracter del buffer (con signo) -95
Caracter del buffer s
ASCII Caracter del buffer
(sin signo
) 115ASCII Caracter del buffer (con signo) 115
Caracter del buffer
Por lo que veo es como que tiene un flag adelante, o algo por el estilo y despues viene un caracter basura o algo asi
proba poniendo unsigned char, y me sigue pasando lo mismo pero con distintos numeros
si alguien me puede dar una mano estaria agradecido!