Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2010, 15:50
Avatar de jc_moj
jc_moj
 
Fecha de Ingreso: septiembre-2009
Ubicación: Andalucía
Mensajes: 137
Antigüedad: 14 años, 7 meses
Puntos: 12
Convertir caracteres UTF a ASCII

Hola a todos

Ando con un problemilla que no logro resolver. Un pequeñísimo ejemplo, he usado un array de char y una variable string, y en ambos casos el resultado es el mismo:

Código C++:
Ver original
  1. int main(int argc, char** argv)
  2. {
  3.     char cad[] = "Programación";
  4.     string cadena;
  5.     int i;
  6.    
  7.     cout << endl << "Array de char:" << endl;
  8.     cout << "Cadena: " << cad << endl;
  9.     cout << "Longitud: " << strlen(cad) << endl;
  10.  
  11.     for(i = 0; i < strlen(cad); i++){
  12.         cout << cad[i] << '-';
  13.     }
  14.     cout << endl;
  15.    
  16.     cout << endl << "String:" << endl;
  17.     cadena = "Programación";
  18.     cout << "Cadena: " << cadena << endl;
  19.     cout << "Longitud: " << cadena.length() << endl;
  20.  
  21.     for(i = 0; i < cadena.length(); i++){
  22.         cout << cadena.at(i) << '-';
  23.     }
  24.    
  25.     cout << endl << endl;
  26.    
  27.     return 0;
  28. }

El problema es la vocal acentuada, como se ve en la salida del programa:

Array de char:
Cadena: Programación
Longitud: 13
P-r-o-g-r-a-m-a-c-i-�-�-n-

String:
Cadena: Programación
Longitud: 13
P-r-o-g-r-a-m-a-c-i-�-�-n-

Mi duda es cómo puedo hacer para extraer los caracteres que contiene la cadena.

Saludos