Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lokecolinUAM en 12 Julio 2012, 08:02 am



Título: Como copiar una cadena a otra crarcter por caracter
Publicado por: lokecolinUAM en 12 Julio 2012, 08:02 am
Es simple tengo que realizar un programa que intercambie una cadena a otra, si ya se "strcpy"
Pues no se me pide que solo utilice ciclos y cadenas y asi.
por farvor es para dentro de unas horas!!!!


Título: Re: Como copiar una cadena a otra crarcter por caracter
Publicado por: DickGumshoe en 12 Julio 2012, 08:04 am
¡Hola!

Puedes hacerlo con un bucle for. Recorres la primera cadena y vas asignándole cada carácter a la cadena2.

Si tienes alguna duda pregunta  :D

Saludos!


Título: Re: Como copiar una cadena a otra crarcter por caracter
Publicado por: lokecolinUAM en 12 Julio 2012, 08:12 am
c   char  A[MAX];
    char  B[MAX];
    int x;
    printf (" Nombre A : ");
    fgets(A,MAX,stdin );
    for(x=0;x<MAX;x++)
    {
            if(A
  • !='\0')
                          B
  • ==A
  • ;
            else(A
  • =='\0')
                          B
  • =='\0';         
    }
 
    printf ("El nombre A es:  \" %s\"\n"  ,A);

    printf ("El nombre B  es:  \" %s\"\n" ,B);
   
   
    /*printf("Al realizar ek intercambio de cadenas:\n\n\n");
    printf ("El nombre A es: \" %s\"\n\n"  ,A);
    printf ("El nombre B es: \" %s\"\n"  ,B);*/
   
 
    system("pause");
    return 0;
}


Título: Re: Como copiar una cadena a otra crarcter por caracter
Publicado por: lokecolinUAM en 12 Julio 2012, 08:13 am
es lo que e tratado pero no funciona si corre pero no me copia
y se supone que el operador asignacion no se puede utilizar para esto pero entonces como
???????????


help!!!!


Título: Re: Como copiar una cadena a otra crarcter por caracter
Publicado por: DickGumshoe en 12 Julio 2012, 08:21 am
En el bucle for esta condición sobra:

Código
  1. if(A!='\0')

ya que indicas que recorres la cadena hasta MAX-1, y el '\0' está en MAX. (A parte de que para recorrer una cadena debes poner el subíndice (el [])...)

Las cadenas no se pueden copiar usando el operador de asignación (y mucho menos el de comparación, que es el que has usado).

Normalmente las cadenas se copian con strcpy(), pero como el ejercicio pide que no uses esa función, pues con el bucle for. Así, vas recorriendo cada carácter de la cadena: cadena[0], cadena[1] ... cadena[MAX-1]; y asignando el carácter a la otra cadena. Así:

Código
  1. for(i=0;i<MAX;i++)
  2. {
  3.   B[i] = A[i];
  4. }
  5. B[MAX] = '\0';
  6.  
  7.  

Saludos!


Título: Re: Como copiar una cadena a otra crarcter por caracter
Publicado por: lokecolinUAM en 12 Julio 2012, 12:11 pm
 :o
Exelente men eres el mejor!!!!