Título: Como pasar a mayuscula vocales acentuadas ? Publicado por: jesus++ en 10 Julio 2014, 05:23 am tengo esta frase:
la cábala de la señora quiero que me salga esto LA CABALA DE LA SEÑORA este es mi programa usando el codigo ASCII, pero no funciona, me devuelve la ñ y la á en minuscula #include<stdio.h> #include<string.h> #include<conio.h> int main() {char cad[100]; int i; printf("Frase: "); gets(cad); for(i=0;i<strlen(cad);i++){ if(cad==160) cad=cad-95; else if(cad=='ñ') cad=cad+1; else if(cad>=97 && cad<=122) cad=cad-32; } printf("\n%s",cad); getch();} Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: eferion en 10 Julio 2014, 10:09 am Nota inicial: El código, mejor si lo pones con las etiquetas GeSHi. Gracias.
No existe una única conversión "número<->carácter", sino que hay muchas. Algunas tablas de conversión son ASCII, UTF-8, UTF-16, las diferentes tablas ANSI... Esta heterogeneidad explica que en algunas páginas Web o correos electrónicos, a veces aparezcan caracteres raros sustituyendo caracteres acentuados o propios de un lenguaje concreto. En tu caso, lo que puede suceder es que tu programa no esté usando la codificación ASCII. Puede que esté usando, por ejemplo, UTF-8, con lo que la codificación de la 'á' y la 'ñ' serán diferentes. Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: leosansan en 10 Julio 2014, 10:14 am ...................................... este es mi programa usando el codigo ASCII, pero no funciona, me devuelve la ñ y la á en minuscula .................................. Usa un: Código
para que veas con qué int se corresponden la ñ y la á y ya tá. ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: eferion en 10 Julio 2014, 10:47 am Usa un: Código
para que veas con qué int se corresponden la ñ y la á y ya tá. Si por ejemplo fuese UTF-8... la codificación de la 'ñ' y la 'á' ocuparían más de un byte. Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: leosansan en 10 Julio 2014, 12:56 pm Si por ejemplo fuese UTF-8... la codificación de la 'ñ' y la 'á' ocuparían más de un byte. He probado y la ñ sigue siendo -92, pero la á no aparece. ¿Qué puedo hacer en este caso?. Saludos, ¡fenómeno!. Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: eferion en 10 Julio 2014, 13:06 pm No sabría decirte... a mi me funcionan las dos:
á = -96 ñ = -92 ... yo estoy compilando con un compilador de C++, no tengo muy claro hasta que punto influye en este caso. Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: leosansan en 10 Julio 2014, 13:12 pm No sabría decirte... a mi me funcionan las dos: á = -96 ñ = -92 ... yo estoy compilando con un compilador de C++, no tengo muy claro hasta que punto influye en este caso. Es que yo lo puse File enconding "UTF-8 y es donde la á no aparece. :silbar: Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: eferion en 10 Julio 2014, 13:18 pm En UTF-8 los valores esperados deberían ser los siguientes:
á: 0xc3 0xa1 - 2 caracteres. ñ: 0xc3 0xb1 - 2 caracteres. así pues para poder leer cada carácter necesitas dos lecturas consecutivas de tipo char. Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: leosansan en 12 Julio 2014, 22:42 pm Ahora sí:
Citar LA CABALA DE LA SEÑORA Código
¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Como pasar a mayuscula vocales acentuadas ? Publicado por: Miseryk en 16 Julio 2014, 21:38 pm Funcionando para pasar de min a may (me sirve para tenerlo en el foro por si lo busco), ahora veo el tema de los tildes.
Código
|