La funcion consiste en tomar 2 cadenas calcular el numero de caracteres de las dos y retornar un puntero a la cadena con mayor numero de caracteres.
el problema es que cuando intento usar la función de esta manera por ejemplo:
char *cadena1 = "texto1";
char *cadena2 = "textoprueba";
cadena = cadena2 = malloc(128*sizeof(char));
printf("%
s ", stringLen(cadena1,cadena2,128,128));
me da error fatal, ahora si por ejemplo cambio el printf por este:
printf("%
c", stringLen(cadena1,cadena2,128,128));
me imprime el primer caracter de la cadena mas larga en este caso imprimiria
"t" de "textoprueba".
Como hago para solucionar que me imprima la cadena completa..?
Código C:
Ver originalchar stringLen(const char *string1, const char *string2, int len, int len2)
{
short i=0,c=0, c2=0;
while (*(string1++) != '\0' && i<len)
{
c++;
i++;
}
i=0;
while (*(string2++) != '\0' && i<len2)
{
c2++;
i++;
}
string1 -= (c+1);
string2 -= (c2+1);
if (c>c2)
return *string1;
else
return *string2;
}