Autor
|
Tema: Como pasar a mayuscula vocales acentuadas ? (Leído 4,968 veces)
|
jesus++
Desconectado
Mensajes: 4
|
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();}
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
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.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
...................................... este es mi programa usando el codigo ASCII, pero no funciona, me devuelve la ñ y la á en minuscula ..................................
Usa un: for(i=0;i<strlen(cad);i++) printf("%d ",cad[i]);
para que veas con qué int se corresponden la ñ y la á y ya tá.¡¡¡¡ Saluditos! ..... !!!!
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Usa un: for(i=0;i<strlen(cad);i++) printf("%d ",cad[i]);
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.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
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!.
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
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.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
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.
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
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.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Ahora sí: ***************** for ( i = 0 ; i < strlen(cad) ; i++ ){ if( cad[i] == 'á' ) cad[i] = 65 ; else if (cad[i] == 'ñ' ) cad[i] = 165 ; else if( cad[i] == ' ' ) continue ; else if( cad[i] >= 97 && cad[i] <= 122 ) cad[i] = cad[i] -32 ; } *************************
¡¡¡¡ Saluditos! ..... !!!!
|
|
« Última modificación: 12 Julio 2014, 22:46 pm por leosansan »
|
En línea
|
|
|
|
Miseryk
Desconectado
Mensajes: 225
SI.NU.SA U.GU.DE (2NE1 - D-Unit)
|
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. #include <iostream> #include <Windows.h> using namespace std; int main() { //PRUEBAS unsigned char asd; asd = 'a'; //97 asd = 'ñ'; //241 asd = 'z'; //122 asd = 'A'; //65 asd = 'Ñ'; //209 asd = 'Z'; //90 cout << int(asd) << endl; //PRUEBAS char cad[100]; printf("Frase: "); gets(cad); cout << cad << endl; for(int i = 0; i < strlen(cad); i++) { if (int(cad[i]) >= 97 && int(cad[i]) <= 122 || int(cad[i]) == 241) { cad[i] = cad[i] - 32; } } cout << cad << endl; system("pause"); return 0; }
|
|
« Última modificación: 16 Julio 2014, 21:39 pm por Miseryk »
|
En línea
|
Can you see it? The worst is over The monsters in my head are scared of love Fallen people listen up! It’s never too late to change our luck So, don’t let them steal your light Don’t let them break your stride There is light on the other side And you’ll see all the raindrops falling behind Make it out tonight it’s a revolution
CL!!!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pasar archivo de texto (.txt) a mayuscula
Java
|
Electoniko-
|
4
|
9,647
|
8 Diciembre 2009, 06:16 am
por Electoniko-
|
|
|
Problemas con palabras acentuadas en FEED
PHP
|
Diabliyo
|
5
|
4,767
|
23 Abril 2010, 08:28 am
por WHK
|
|
|
[Python] - Texto sin vocales
« 1 2 »
Python
|
ChicoMaravilla
|
18
|
25,697
|
11 Enero 2011, 16:57 pm
por Karcrack
|
|
|
eliminar vocales
Programación C/C++
|
ALONSOQ
|
6
|
12,523
|
6 Septiembre 2012, 19:38 pm
por BlackZeroX
|
|
|
Palabras Acentuadas problema al mostrar !
PHP
|
Diabliyo
|
9
|
5,639
|
14 Noviembre 2014, 22:52 pm
por R2100
|
|