me come el ultimo caracter de la primer cadena

Iniciado por basuel, 18 Octubre 2012, 19:31 PM

0 Miembros y 1 Visitante están viendo este tema.

basuel

alguien sabe xq me come el ultimo caracter de la primer cadena??


void strcat (char* cad1,char * cad2)
{
   int i=0;

   while(cad1!='\0')
   {
       i++;
   }
    int j=0;

    while(cad2[j]!='\0')
    {cad1=cad2[j];
        i++;
        j++;
    }

      cad1=cad2[j];
}

x64core

Cita de: basuel en 18 Octubre 2012, 19:31 PM
alguien sabe xq me come el ultimo caracter de la primer cadena??


void strcat (char* cad1,char * cad2)
{
   int i=0;

   while(cad1!='\0')
   {
       i++;
   }
    int j=0;

    while(cad2[j]!='\0')
    {cad1=cad2[j];
        i++;
        j++;
    }

      cad1=cad2[j];
}

strcat une las string cad2 a cad1 al buffer destino eliminando el caracter nulo de lo contrario no formarian una sola cadena pero si quereis que no borre el
caracter nulo entonces agregar esta linea justo despues del primer bucle while:

i++;





rir3760

Esa función realiza la operación (concatenación) de forma correcta. El error, si existe, debe encontrarse en otra parte del programa.

Se puede acortar utilizando punteros:
void strcat(char *p, char *q)
{
   while (*p != '\0')
      p++;
   
   while ((*p++ = *q++) != '\0')
      ;
}


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language