Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] concatenar cadenas

Estas en el tema de concatenar cadenas en el foro de C/C++ en Foros del Web. hola buenas noches tengo pequeño problema necesito con catenar dos cadenas en C pero sin usar las funciones como strcat, debo de crear una yo ...
  #1 (permalink)  
Antiguo 16/05/2015, 23:34
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 9 años, 7 meses
Puntos: 0
Exclamación concatenar cadenas

hola buenas noches tengo pequeño problema necesito con catenar dos cadenas en C pero sin usar las funciones como strcat, debo de crear una yo para lo cual pues yo cree esta pero no me realiza bien la concatenación necesito ayuda... Lees dejo mi función que debería de servir creo!

void concatenacion(char *cad1, char *cad2, char *cad4)
{
int i,j=0;
for (i=0; i<25; i++)
{
cad4[i]=cad1[i];
j++;
}
for (i=0; i<25; i++)
{
cad4[j]=cad2[i];
j++;
}
}

int main()
{
int b; ///Bandera
char cad1[25], cad2[25], cad4[50]; ///Cad4 es la concatenación
printf("\n\t----Usando bibliotecas con cadenas----\n");
printf("\nIngrese su 1er cadena sin espacio max. 25 caracteres\n\n");
scanf("%[^\n]c", &cad1);
printf("\nIngrese su 2da cadena sin espacio max. 25 caracteres\n\n");
fflush(stdin);
scanf("%[^\n]c", &cad2);
concatenacion(&cad1,&cad2,&cad4);
printf("%s\n",cad4);
{

el problema es que creo que almacena basura pero no se como decirle al if que sea hasta que encuentre el salto de linea
  #2 (permalink)  
Antiguo 16/05/2015, 23:45
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: concatenar cadenas

Para solucionarla es asi marcando el '\0' que es igual al salto de linea
void concatenacion(char *cad1, char *cad2, char *cad4)
{
int i=0,j=0;
do
{
cad4[i]=cad1[i];
i++;
}while(cad1[i]!='\0');
do
{
cad4[i]=cad2[j];
i++;
j++;
}while(cad2[j-1]!='\0');
}

Etiquetas: cadenas, concatenar, funciones, impresion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:08.