Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/09/2010, 15:51
logic_tristaN
 
Fecha de Ingreso: septiembre-2010
Mensajes: 16
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Una mano con esta funcion.

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 original
  1. char stringLen(const char *string1, const char *string2, int len, int len2)
  2. {
  3.     short i=0,c=0, c2=0;
  4.     while (*(string1++) != '\0' && i<len)
  5.     {
  6.         c++;
  7.         i++;
  8.     }
  9.     i=0;
  10.     while (*(string2++) != '\0' && i<len2)
  11.     {
  12.         c2++;
  13.         i++;
  14.     }
  15.     string1 -= (c+1);
  16.     string2 -= (c2+1);
  17.     if (c>c2)
  18.         return *string1;
  19.     else
  20.         return *string2;   
  21. }