Pídale a un experto que le explique el siguiente procedimiento. ¿Por qué la salida es AGAAGAG?
/*
Inicialmente, p1 apunta al primer carácter de la cadena,
p2 apunta al último carácter de la cadena,
El bucle while realiza las siguientes operaciones
s guarda el carácter señalado por p1
p1 apunta al siguiente carácter
Asigna el carácter señalado por p2 a la memoria apuntada por p1
p>p2 apunta al carácter anterior
Asigne el carácter guardado por s a la memoria apuntada por p2
En de esta manera se obtiene el resultado final
Puedes agregar salida al bucle para ver los detalles de todo el proceso
*/
#include< stdio.h>
#include< string.h>
void?fun(char?*w,int?m)
{?
char?s,*p1,*p2
p1=w;
p2=w+m-1;
int?i =1;
mientras(p1< p2)
{?
printf("%d.?p1:%d,p2:%d\n ",i,p1,p2);
printf("*p1:%c,*p2:%c\n",*p1,*p2);
s= *p1++;
*p1=* p2--;?
*p2=s;
printf("p1:%d,p2:%d \n",p1,p2);
printf("*p1:%c,*p2:%c\n",*p1,*p2);
printf( "s:%c\n",s); p>
printf("a:%s\n",w);
printf("\n"); p>
i++;
}
}
void?main()
{?
char?a[]="ABCDEFG";
fun(a,strlen(a));
puts(a);
} p>
Por favor adopta