elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Coger caracteres de una palabra
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Coger caracteres de una palabra  (Leído 9,285 veces)
Komodo


Desconectado Desconectado

Mensajes: 352



Ver Perfil
Coger caracteres de una palabra
« en: 1 Mayo 2010, 19:52 pm »

Tengo una duda, que es la siguiente como podría coger todos los caracteres de una palabra y sacar su valor ascii y guardarlos en un arreglo int, a ser posible, un ejemplo sería lo siguiente:

Komodo - 75,111,109,111,100,111

Simple, ¿no? aquí cogería la palabra Komodo y cada char lo pasaría a int dandonos su valor ascii, pues lo que busco es hacer eso y que esos valores ascii se guarden como enteros.

Gracias


En línea


AckeR

Desconectado Desconectado

Mensajes: 109


Tu única Limitación Es tú Imaginación (:


Ver Perfil
Re: Coger caracteres de una palabra
« Respuesta #1 en: 1 Mayo 2010, 20:17 pm »

Buenas!

Podrias Hacer algo asi :

Código
  1. int valorAscii=0;
  2. char letra = 'A';
  3. valorAscii = (int)letra;

No lo he Compilado, pero creo que así debería funcionar.

Suerte!


En línea


...DaR LaS GraCiaS No CuestA NadA...
Dellarts

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Coger caracteres de una palabra
« Respuesta #2 en: 1 Mayo 2010, 20:24 pm »

Yo lo haria asi

Código:
void main(){
      int x, valor;
      char cadena[50] ="komodo";

     for(x=0;x<strlen(cadena);x++)
            valor = atoicadena[x];

}


Igual tiene algun error de compilacion x es asi.
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Coger caracteres de una palabra
« Respuesta #3 en: 1 Mayo 2010, 22:08 pm »

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. int main(void)
  5. {
  6.    char cadena[] = "75,111,109,111,100,111", copia[200];
  7.    strcpy(copia, cadena);
  8.    char *elemento = strtok(cadena, ",");
  9.    unsigned short int i = 0, j = 0;
  10.    while(elemento != NULL)
  11.    {
  12.        elemento = strtok(NULL, ",");
  13.        i++;
  14.    }
  15.    signed int *vector = (int *)malloc(sizeof(int) * i);
  16.    elemento = strtok(copia, ",");
  17.    while(elemento != NULL)
  18.    {
  19.        *(vector + j++) = atoi(elemento);
  20.        elemento = strtok(NULL, ",");
  21.    }
  22.    for(j = 0; j < i; j++)
  23.    printf("[%d]", *(vector + j));
  24.    return 0;
  25. }
  26.  
« Última modificación: 1 Mayo 2010, 22:26 pm por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
DarkItachi


Desconectado Desconectado

Mensajes: 516


Itachi Uchiha


Ver Perfil
Re: Coger caracteres de una palabra
« Respuesta #4 en: 2 Mayo 2010, 00:39 am »

Código
  1. char* stringtoascii(char *cad)
  2. {
  3.    int size=strlen(cad);
  4.    char *supercad=new char[size*5]; strcpy(supercad,"");
  5.    for (int n=0;n<size;n++)
  6.    {
  7.        char *num=new char[3]; itoa(int(cad[n]),num,10);
  8.        supercad=strcat(supercad,num);
  9.        if (n!=size-1) supercad=strcat(supercad,",");
  10.    }
  11.    return supercad;
  12. }
  13.  
En línea

Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Coger caracteres de una palabra
« Respuesta #5 en: 2 Mayo 2010, 00:44 am »

@DarkItachi

Algunas cuestiones con tu código.

-Poner más de una sentencia en una línea, es un mal hábito de programación, aunque el compilador lo permita.

-itoa() no forma parte del standard, aunque algunos compiladores lo permitan.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
DarkItachi


Desconectado Desconectado

Mensajes: 516


Itachi Uchiha


Ver Perfil
Re: Coger caracteres de una palabra
« Respuesta #6 en: 2 Mayo 2010, 01:01 am »

@DarkItachi

Algunas cuestiones con tu código.

-Poner más de una sentencia en una línea, es un mal hábito de programación, aunque el compilador lo permita.

-itoa() no forma parte del standard, aunque algunos compiladores lo permitan.

Cierto, itoa no forma parte del standard, lo tendré en cuenta :)

Respecto a lo de poner más de una sentencia en una línea, para mí es un buen hábito, junto cosas relacionadas para no confundirme y en if/while/for si son sentencias cortas para que el código quede más compactado.

Gracias por dar tu opinión :P
En línea

Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.
Og.


Desconectado Desconectado

Mensajes: 822


Aprendiendo de la vida


Ver Perfil
Re: Coger caracteres de una palabra
« Respuesta #7 en: 2 Mayo 2010, 02:12 am »

4 códigos, 1 no tienen nada que ver con el tema, 1 no hace absolutamente nada y el de DarkItachi no es lo que se necesitaba (lee el post xD). Ninguna respuesta concisa :P

El tipo de dato char, es de 1 byte (8 bits) osea que puedes guardar 28 posibles combinaciones (estas combinaciones son la tabla ASCII). realmente cuando guardas un carácter en un entero, estas guardando un numero el cual se representa como ese carácter que quieres almacenar. Por ejemplo intenta hacer esto:
Código
  1. std::cout << 'a' << std::endl << (int)'a';
lo que ese código te mostrara sera simplemente:
Código:
a
97
97 es el valor que en la tabla ASCII equivale a 'a'.
si quieres convertir una cadena de caracteres puedes simplemente hacer:
Código
  1. int* nnn(const char *str)
  2. {
  3.    unsigned short int len = 0;
  4.    while(*(str+(len++)));
  5.    int *arregloF = new int[len], *cpy = arregloF;
  6.    while(*str)
  7.        *(cpy++) = *str++;
  8.    return arregloF;
  9. }
asi
Código
  1. nnn("Komodo");
te devolverá un arreglo con los valores:
Código:
75, 111, 109, 111, 100, 111


Saludos.
« Última modificación: 2 Mayo 2010, 02:20 am por Og. » En línea

|-
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Coger caracteres de una palabra
« Respuesta #8 en: 2 Mayo 2010, 02:22 am »

Código
  1. int *arregloF = new int[len], *cpy = arregloF;

Nunca habia visto algo asi :o
Ese cpy de donde salio??  :xD

Aunque me parece mejor el de Acker... Pero pes el tuyo ta interesante  ::)
Saludos...
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Coger caracteres de una palabra
« Respuesta #9 en: 2 Mayo 2010, 02:23 am »

Entendí mal el problema.

Solo tomé en cuenta esto:

Citar
Komodo - 75,111,109,111,100,111

Es decir, mi código toma esto:
Código:
75,111,109,111,100,111

Y lo muestra así:
Código:
Komodo
Código
  1. int *arregloF = new int[len], *cpy = arregloF;
Ese cpy de donde salio??  :xD

Son definiciones y creaciones múltiples, yo no le veo el error.
« Última modificación: 2 Mayo 2010, 02:25 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
contar caracteres de una palabra y devolver que palabra es en java
Java
Cooltan 4 23,800 Último mensaje 6 Abril 2011, 12:21 pm
por Cooltan
hacer un programa que cuente cuantos caracteres hay en una palabra(1 sola vez)?
Java
Starkdkcr 2 3,658 Último mensaje 2 Marzo 2013, 03:15 am
por leogtz
En c++ dar vuelta una palabra cada n caracteres
Programación C/C++
isa 0 1,984 Último mensaje 14 Junio 2017, 21:04 pm
por isa
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines