C:\\Documents and Settings\\Administrador\\Mis documentos

Anuncio
#include <condefs.h>
#pragma hdrstop
#include <stdio.h>
#include <stdlib.h>
/*
Ingresar dos cadenas de caracteres de no mas de 50 caracteres en la
memoria dinámica. Llamar a un procedimiento que devuelva otra cadena
de caracteres con las dos cadenas concatenadas y que tenga exactamente
la cantidad de términos más el caracter nulo.
*/
//--------------------------------------------------------------------------char* unir(char* m, char *n )
{
char *c = (char*)malloc(sizeof(char)*(strlen(m)+strlen(n)+1 ) );
int i, j;
for( i = 0; i < strlen(m);i++)
{
c[i]=m[i];
}
j = i;
for(i = 0; i < strlen(n); i++,j++)
{
c[j]=n[i];
}
c[j]='\0';
return c;
//observar que no se libera la memoria correspondiente a la variable
}
#pragma argsused
main()
{
char *a,*b,*c;
a = (char *)malloc(sizeof(char)*51);
b = (char *)malloc(sizeof(char)*51);
printf("entre primer cadena ");gets(a);
printf("entre segunda cadena ");gets(b);
c = unir(a,b);
free(a);
free(b);
printf("%s\t%d\n", c, strlen(c) );
free(c);//observar que se DEBE liberar la memoria alocada en c en algún
//lado en este caso aquí
system("pause");
}
1
Descargar