Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Dano1952

#11
Hola ¿como están?
En el tutorial con el que estoy re-pasando punteros hay un programa que pongo a continuación:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char copiar(char*, const char*);

int main(void){
char ptrA[80] = "Cadena a usar para el programa de ejemplo";
char ptrB[80];

copiar ( ptrB, ptrA );
printf ( "\n %s\n ", ptrB );

return EXIT_SUCCESS;
}

char copiar ( char *destino, const char *fuente ){

while ( *fuente != '\0' ){
*destino++ = *fuente++;
}
*destino = '\0';

return *destino;
}


La duda es que la función (en el tutorial) tiene esta línea que yo quite y funciona igual, me podrían decir porque la habrán incluido, ¿tiene alguna ventaja? ,-

char *p = destino;

char copiar ( char *destino, const char *fuente ){
char *p = destino;

while ( *fuente != '\0' ){
*p++ = *fuente++;
}
*p = '\0';

return *destino;
}


Dano.
#12
Sólo si estuvieran sentado frente a mi compu notarían la satisfacción que me causo la explicación de Ud. todo perfecto todo entendido, todo claro.- ;-) ;-) ;-)
Dano.
#13
Gracias por responder, de acuerdo, una sola cosita mas, no podes darme algo de teoría de porque no se puede.

Saludos.
#14
Hola ¿como están? .
Tengo una dificultad en este programita que por mas que repaso manuales y busco en la web no logro dar con la tecla, mi pregunta es porque no puedo imprimir la frase invertida con un simple printf %s,

#include <stdio.h>
#include <string.h>

int main(void){
char cadena[]="Rosa y Yiyi", tmp[12]="";
char *p = cadena;
char *t = tmp;
int i, j, lar;

printf ( "\n %s\n", p );
lar = strlen(p);

for (i=lar,j=0; i>=0; i--,j++){
*(t+j) = *(p+i);
}

for (i=0; i<=lar; i++){
printf ( "%c", *(t+i) );
}

printf ( "\n" );

return 0;
}


Esta parte es la que quiero reemplazar y no lo logro.
for (i=0; i<=lar; i++){
printf ( "%c", *(t+i) );
}


Me podrían decir donde estoy fallando?

Dano.