• Viernes 8 de Noviembre de 2024, 12:27

Autor Tema:  Conversion ñ Y Ñ A Ascii, No Me Da  (Leído 2590 veces)

Daniel103

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Conversion ñ Y Ñ A Ascii, No Me Da
« en: Viernes 15 de Febrero de 2008, 22:43 »
0
El problema que no logro resolver es que cuando introdusca la letra ñ o Ñ me sale el 36 y el 37 respectivamente, y deberia ser el 164 y 165...

Ademas cuando los vuelvo a transformar en su caracter al 36 y 37 aparece $ y %.

Si alguien me podria hechar una mano lo agradeceria mucho.









#include <iostream>
#include <string.h>

using namespace std;

int main(int argc, char *argv[])
{
   
   
   int tfrase=0; //tamaño frase
     
    int vector[100];
   
   string frase;
 
 
     
     system ("CLS");
     cout<<"introdusca un texto "<<endl;

     getline(cin,frase);

     tfrase=frase.size();
     
     
       
       
       
    cout<<"usted introdujo un texto de "<<tfrase<<" caracteres"<<endl;
   
   
 
  cout<<"Aqui pasamos la frase completa de string a ascii"<<endl;

    cout<<"y luego lo guardamos en un vector"<<endl;

    for(int tam =0; tam<tfrase;tam++){
            vector[tam]= toascii(frase[tam]);

   
    }
   
    cout<<"\nLuego imprimimos el vector"<<endl;
    for(int tam =0; tam<frase.size();tam++){
        vector[tam];
        cout<<vector[tam]<< " ";//las comillas son para poner espacio en blanco
        }                
   
   
   
   
   
 /*  ///////////////////////////////
   
   a= static_cast<char>(32);
   cout<<"El valor de 32 convertido a ascii es: "<<a<<endl;
   
    ////////////////////////////////////
   
   */
   
   
   
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Conversion ñ Y Ñ A Ascii, No Me Da
« Respuesta #1 en: Sábado 16 de Febrero de 2008, 01:05 »
0
Estas cometiendo un error en la utilizacion de la funcion toascii, en realidad no hace lo que tu crees que deberia hacer, te dejo la definicion:

Citar
Macro toascii ANSI C

int toascii(int c);

Convierte caracteres a formato ASCII.

toascii es una macro convierte el entero c a ASCII eliminando todos los bits menos los siete de menor peso. Eso proporciona un valor dentro del rango entre 0 y 127.

Si le sumas 128 al valor, veras que obtienes 164 y 165.

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Daniel103

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Conversion ñ Y Ñ A Ascii, No Me Da
« Respuesta #2 en: Sábado 16 de Febrero de 2008, 01:44 »
0
muchas gracias, me sirvio bastante!

Daniel103

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Conversion ñ Y Ñ A Ascii, No Me Da
« Respuesta #3 en: Sábado 16 de Febrero de 2008, 19:27 »
0
No saben si existe alguna funcion que como toascii pero que trabaje con toda la tabla de los valores ascii? osea que sea desde 0 al 255??

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Daniel103

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Conversion ñ Y Ñ A Ascii, No Me Da
« Respuesta #5 en: Sábado 16 de Febrero de 2008, 22:09 »
0
basicamente lo que quiero hacer es un string donde se introduzca una frase, y esa frase solo me acepte caracteres del abcedario, y espacios en blanco.

Asi que para hacer eso pense en pasar todos los caracteres a su valor ascii condicionarlo para que solo pueda introducir los caracteres del abcedario y los espacios en blanco.

Pero con la ñ y la Ñ no me va porque la funcion toascii solo funciona desde el 0 al 127, por lo que hay algunos valores que se repiten.

Hay alguna otra forma de condicionar que la frase solo se introduscan valores de a la z y espacios en blanco?

GRACIAS!