Discussion:
COMO PASAR UNA CADENA A MAYUSCULAS O A MINUSCULAS
(demasiado antiguo para responder)
HADES
2004-02-04 11:38:27 UTC
Permalink
TENGO UNA FUNCION Q ME HE CREADO YO PARA ORDENAR UNA SERIE POR
PANTALLA UN STRUCT DE CADENAS PERO ESTA FUNCIÓN ME DISTINGUE ENTRE
MAYUSCULAS Y MINUSCULAS, ES DECIR, ME ORDENA POR UN LADO LAS CADENAS Q
EMPIEZAN POR MAYUSCULAS Y POR OTRO LAS CADENAS Q EMPIEZAN POR
MINUSCULAS, MI IDEA ES Q AL PRINCIPIO DE LA FUNCION ME PASE CADA
CADENA A MAYUSCULAS O MINUSCULAS Y ASÍ EL PROBLEMA SE VERÁ RESUELTO.
PERO ¿COMO LO HAGO?
GRACIAS.
juan
2004-02-04 12:38:05 UTC
Permalink
puedes usar las funciones toupper o tolower, no se si las e escrito bien

o puedes hacerlo con los ascii, es decir:
a 97 A 65
b 98 B 66
...
z 122 Z 90

para pasar de minuscula a mayuscula le restas 32, y al reves , le sumas 32
para pasar de mayuscula a minuscula
Post by HADES
TENGO UNA FUNCION Q ME HE CREADO YO PARA ORDENAR UNA SERIE POR
PANTALLA UN STRUCT DE CADENAS PERO ESTA FUNCIÓN ME DISTINGUE ENTRE
MAYUSCULAS Y MINUSCULAS, ES DECIR, ME ORDENA POR UN LADO LAS CADENAS Q
EMPIEZAN POR MAYUSCULAS Y POR OTRO LAS CADENAS Q EMPIEZAN POR
MINUSCULAS, MI IDEA ES Q AL PRINCIPIO DE LA FUNCION ME PASE CADA
CADENA A MAYUSCULAS O MINUSCULAS Y ASÍ EL PROBLEMA SE VERÁ RESUELTO.
PERO ¿COMO LO HAGO?
GRACIAS.
Fernando Arbeiza
2004-02-04 13:52:18 UTC
Permalink
Post by juan
a 97 A 65
b 98 B 66
...
z 122 Z 90
para pasar de minuscula a mayuscula le restas 32, y al reves , le sumas 32
para pasar de mayuscula a minuscula
Esta manera de hacerlo no es portable. Lo mejor sería utilizar tolower()
y toupper(), como bien has dicho antes.

Un detalle con tolower() y toupper(), como seguramente se utilizará un
conjunto de caracteres que no pertenece al básico, para poder convertir
el resto de caracteres habrá que ajustar el entorno local (con
setlocale()). Una llamada así antes de utilizar tolower() o toupper()
debería bastar (si los locales de entorno están bien configurados):

setlocale(LC_ALL, "");

Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
Winfree
2004-02-04 12:42:41 UTC
Permalink
Post by HADES
CADENA A MAYUSCULAS O MINUSCULAS Y ASÍ EL PROBLEMA SE VERÁ RESUELTO.
PERO ¿COMO LO HAGO?
GRACIAS.
Create una función que recorra la cadena y te convierta cada caracter a
mayusculas o minúsculas. Para ello en la libreria ctype.h tienes las
funciones:

int tolower(int);
int toupper(int);

que dado un número que representa el caracter lo convierte según la
función.

No se si habrá en alguna libreria alguna función con cadenas que haga ya
esto, aunque creo que en la string.h no está.
Zheo
2004-02-04 13:08:11 UTC
Permalink
A fecha de 04 feb 2004, HADES decidió compartir su precioso tiempo con los
lectores de es.comp.lenguajes.c escribiendo el siguiente mensaje
Post by HADES
TENGO UNA FUNCION Q ME HE CREADO YO PARA ORDENAR UNA SERIE POR
PANTALLA UN STRUCT DE CADENAS PERO ESTA FUNCIÓN ME DISTINGUE ENTRE
MAYUSCULAS Y MINUSCULAS, ES DECIR, ME ORDENA POR UN LADO LAS CADENAS Q
EMPIEZAN POR MAYUSCULAS Y POR OTRO LAS CADENAS Q EMPIEZAN POR
MINUSCULAS, MI IDEA ES Q AL PRINCIPIO DE LA FUNCION ME PASE CADA
CADENA A MAYUSCULAS O MINUSCULAS Y ASÍ EL PROBLEMA SE VERÁ RESUELTO.
PERO ¿COMO LO HAGO?
GRACIAS.
Realmente necesitas esa función para no escribir todo en mayúsculas, lo que
indica que la pides gritando...
Para la próxima, por favor desactiva el bloq Mayús.

La duda que preguntas se responde echándole un vistazo a la biblioteca
estandar de C, en concreto busca la función toupper() o algo parecido (no
lo tengo a mano, pero creo recordar que era así)

Un saludo.

PD: usar comas tampoco está de más, que me ha costado un poco leerlo todo
bien.
--
****************************************************************
ICQ: 19463735
MSM: zheo_ (at) hotmail (dot) com

"Hay 10 tipos de personas: las que saben binario y las que no"
Zheo 2004
****************************************************************
jlan
2004-02-04 12:07:30 UTC
Permalink
Post by HADES
TENGO UNA FUNCION Q ME HE CREADO YO PARA ORDENAR UNA SERIE POR
PANTALLA UN STRUCT DE CADENAS PERO ESTA FUNCIÓN ME DISTINGUE ENTRE
MAYUSCULAS Y MINUSCULAS, ES DECIR, ME ORDENA POR UN LADO LAS CADENAS Q
EMPIEZAN POR MAYUSCULAS Y POR OTRO LAS CADENAS Q EMPIEZAN POR
MINUSCULAS, MI IDEA ES Q AL PRINCIPIO DE LA FUNCION ME PASE CADA
CADENA A MAYUSCULAS O MINUSCULAS Y ASÍ EL PROBLEMA SE VERÁ RESUELTO.
PERO ¿COMO LO HAGO?
¿quien no distingue entre mayusculas y minusculas?
¿la función o tu?

Por favor escribe en minusculas.
Escribir en mayusculas es como gritar, si quieres consultar algo mas
sobre netiqueta pasate por: http://www.escomposlinux.org


- --

Jose Luis Alcazar /NeumaNN <jlan AT ono DOT com> GPG ID: 0x044E638B
fingerprint 34DA 5038 2DCC A55C C143 7382 4C68 847D 044E 638B
Linux registered user: #172297 GNU/Linux Debian

Loading...