Título: uso de strcat Publicado por: m@o_614 en 21 Diciembre 2013, 03:13 am Saludos, tengo una duda sobre el uso de la función strcat.
si yo tengo una cadena inicializada en NULL, *cadena = NULL, y con un ciclo while quiero ir agregadole caracter por caracter podria hacer esto con el strcat que me vaya concatenando al final de la cadena caracter por caracter?? algo como asi: Código
es que el codigo no funciona y creo que es por el strcat gracias Título: Re: uso de strcat Publicado por: naderST en 21 Diciembre 2013, 07:15 am El primer parámetro de strcat debe ser una cadena de C con espacio suficiente para almacenar la cadena que le vas a concatenar.
http://www.cplusplus.com/reference/cstring/strcat/ (http://www.cplusplus.com/reference/cstring/strcat/) Título: Re: uso de strcat Publicado por: m@o_614 en 21 Diciembre 2013, 20:27 pm ya vi que mi error era en que no le habia asignado memoria a la cadena, pero ahora por ejemplo si le ingreso las letras a, b, c, d, e. cuando le pido que imprima ya la cadena completa me imprime con basura #Wqabcde,
Código
Título: Re: uso de strcat Publicado por: rir3760 en 22 Diciembre 2013, 01:46 am vi que mi error era en que no le habia asignado memoria a la cadena, pero ahora por ejemplo si le ingreso las letras a, b, c, d, e. cuando le pido que imprima ya la cadena completa me imprime con basura #Wqabcde 1) Cuando reservas un bloque de memoria con malloc su contenido es no definido o basura.2) strcat concatena las cadenas agregando la segunda al final de la primera. Para ello debe primero encontrar el carácter '\0' que indica el final de esta. 3) Si piensas leer cinco caracteres y almacenarlos como una cadena debes reservar un byte adicional para almacenar ahí el terminador de cadena '\0'. En base a ello ya puedes solucionar el problema en tu programa. Un saludo Título: Re: uso de strcat Publicado por: m@o_614 en 22 Diciembre 2013, 16:18 pm muchas rir3760 ya le cambie el malloc por el calloc para que se inicialice sin basura, una última duda, como en el codigo primero le pido el valor de car y despues le hago un "cast" con sprintf para que sea una cadena, no seria mejor si simplemente quitar el sscanf y el sprintf, me quedo con el fgets y despues se lo concateno a con strcat, porque como tiene que ser tipo cadena creo que el sprintf y el sscanf están de más
Código
gracias Título: Re: uso de strcat Publicado por: rir3760 en 22 Diciembre 2013, 22:07 pm una última duda, como en el codigo primero le pido el valor de car y despues le hago un "cast" con sprintf para que sea una cadena, no seria mejor si simplemente quitar el sscanf y el sprintf, me quedo con el fgets y despues se lo concateno a con strcat Ya que el programa solo colecta caracteres para formar una cadena basta con scanf:Código
Un saludo |