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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  pasa de int a string en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: pasa de int a string en c  (Leído 2,079 veces)
jose_j

Desconectado Desconectado

Mensajes: 5


Ver Perfil
pasa de int a string en c
« en: 5 Enero 2018, 00:57 am »

Hola gente aquí de nuevo con otro problemita  :( ,(nuevamente digo que soy nuevo en c ) lo que quería saber es si hay una forma de pasar un numero , o sea un int a un “string” por así decirlo (un arrays de chars) para poder asi mandar por el puerto serie, tengo un micro atmega328p  que hace la conversión AD y quiero ver ese valor en el monitor serie  que trae arduino, lo que se me ocurrió es meter ese valor de la conversión en un array char  mandalo uno por uno, o me pueden sugerir otra forma. Gracias     


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: pasa de int a string en c
« Respuesta #1 en: 5 Enero 2018, 03:48 am »

Mira si tienes sprintf, que es igual a printf pero en vez de a la salida estándar el resultado va a un buffer tipo char* o lo haces a mano con módulos, divisiones y sumas en un for.


En línea

jose_j

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: pasa de int a string en c
« Respuesta #2 en: 5 Enero 2018, 12:48 pm »

Mira si tienes sprintf, que es igual a printf pero en vez de a la salida estándar el resultado va a un buffer tipo char* o lo haces a mano con módulos, divisiones y sumas en un for.
gracias por responder, cuando decis "o lo haces a mano" como seria? tendrias una idea mas o menos de como podria  hacerlo?.
saludos!
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: pasa de int a string en c
« Respuesta #3 en: 5 Enero 2018, 15:55 pm »

Una solución rápida sería prepara un array tan largo como el mayor número, en decimal, representable con la palabra de tu uC más 1:
De 8 bits es 4 (255)
De 16 bits es 6 (65535)
Etc.

Si también vas a poder representar números negativos recuerda añadir otro carácter para representar el símbolo -

Índice = 0
Si el número es negativo márcalo con una variable y haces tu número positivo: número = -número
Hasta que el número sea 0:
    Array[índice] = (número % 10) + '0' // para transformar el número en su carácter ASCII
    Número = número / 10
    Índice = índice + 1

Si tu número era negativo (observando lo que dice la variable que has marcado anteriormente) añade el carácter - a tu cadena
En cambio si era positivo resta 1 a índice.

Ahora, aprovechando que índice te marca el final de la cadena, la inviertes. A la resultante le añades el carácter '\0' detrás para cerrarla.

Ya tienes tu número transformado en cadena.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines