Ayuda en C. Unir char a char[] SOLUCIONADO

Iniciado por NeoB, 9 Abril 2012, 22:40 PM

0 Miembros y 1 Visitante están viendo este tema.

NeoB

Buenas, tengo un problema que no consigo resolver en C, y espero que puedan ayudarme.
Quiero unir un char (ejemplo '9') a una cadena (ejemplo "6533") de forma que luego imprima la cadena y sea "65339".
He googleado bastante y veo que con strcat() puedo unir dos cadenas, pero yo quiero unir una cadena y un carácter, y al intentarlo con strcat() me da error.
¿Hay alguna función que lo haga? ¿De que manera puedo hacerlo? Gracias.

DaniekL

#1
Prueba esto

char *cadena;
int numero;
strcat(cadena, itoa(numero));

durasno

Hola! como itoa no es estandar, lo que podrias hacer es buscar la posicion donde se encuentra el caracter '\0' y ahi guardes ese caracter que queres concatenar. No te olvides que despues del caracter guardado tenes que guardar el '\0' al final

Saludos

PD: acordate que el arreglo tiene q ser lo suficientement grande como para guardar un caracter mas(si trabajas con punteros vas a tener q reservar memoria)
Ahorrate una pregunta, lee el man

armizh

A mi se me ocurre esta solución!
char * cadena;
char caracter;
/* ... */
for(;*cadena='\0';*cadena++);
*cadena++ = caracter;
*cadena = '\0';

Todo esto dentro del main... claro, es una de las soluciones que se me ocurre :D Espero que se entienda bien lo que se esta haciendo con esto...

Saludos!
Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Hamster

Beakman

strcat recibe dos char*. Si querés pasarle un solo carácter podés agregarle un '\0'.
Código (cpp) [Seleccionar]
char caracter = 'a';
char aux[ 2 ];
aux[ 0 ] = caracter;
aux[ 1 ] = '\0';

NeoB

#5
Ok, ya lo solucioné, ¡se me había olvidado poner al final un '\0' !! ...fallo tonto... Muchas gracias.