SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Daniel103 en Viernes 15 de Febrero de 2008, 22:43

Título: Conversion ñ Y Ñ A Ascii, No Me Da
Publicado por: Daniel103 en Viernes 15 de Febrero de 2008, 22:43
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;
}
Título: Re: Conversion ñ Y Ñ A Ascii, No Me Da
Publicado por: ProfesorX en Sábado 16 de Febrero de 2008, 01:05
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.
Título: Re: Conversion ñ Y Ñ A Ascii, No Me Da
Publicado por: Daniel103 en Sábado 16 de Febrero de 2008, 01:44
muchas gracias, me sirvio bastante!
Título: Re: Conversion ñ Y Ñ A Ascii, No Me Da
Publicado por: Daniel103 en Sábado 16 de Febrero de 2008, 19:27
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??
Título: Re: Conversion ñ Y Ñ A Ascii, No Me Da
Publicado por: Eternal Idol en Sábado 16 de Febrero de 2008, 21:39
http://en.wikipedia.org/wiki/Ascii (http://en.wikipedia.org/wiki/Ascii)
http://en.wikipedia.org/wiki/Extended_ASCII (http://en.wikipedia.org/wiki/Extended_ASCII)
http://en.wikipedia.org/wiki/Unicode (http://en.wikipedia.org/wiki/Unicode)
Título: Re: Conversion ñ Y Ñ A Ascii, No Me Da
Publicado por: Daniel103 en Sábado 16 de Febrero de 2008, 22:09
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!