Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/06/2008, 18:56
hiana
 
Fecha de Ingreso: enero-2008
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: invertir un arreglo?¡?

Muy buenas!!

Mira, te dejo dos códigos, el primero es mas largo pero algo mas “entendible” que el segundo, te puse mas o menos la explicación para que lo puedas seguir…

Código PHP:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void cat(char*);

void main()
{
char c1[26];       //declaro un array de char

printf("\nc1: ");
fflush(stdin);    //fflush "limpia" el buffer
gets(c1);  // o scanf("%s",&c1);
cat(c1);

puts(c1); //o tambien podes poner printf("\n%s",c1);
getch();  //este "para" el programa para que puedas ver la salida del puts
}

void cat(char*c1)
{
char*fin=c1,c;   //guardo en fin la posicion de memoria de c1 => fin tiene lo mismo que c1
int cant=0,i;

for( ;*
fin!='\0';fin++)   //llevo la cadena hasta el final
    
cant++;

fin--;    //retrocedo uno para no quedarme en el '\0'
cant--;

for(
i=0;i<(cant/2);i++,c1++,fin--)    //divido a cant por dos para que sea la mitad de la palabra
     
{
   
c=*c1;        //guardo el primer caracter de c1, la primer letra
     
*c1=*fin;   // "     la ultima letra de la palabra al principio de c1
     
*fin=c;     //y guardo la primera letra que habiamos guardado en c al final de la cadena
     
}


Y este es el otro que muuucho mas cortito, esta muy bueno! aunque puede resultar confuso...

Código PHP:
#include <conio.h>
#include <string.h>
#include <stdio.h>

void reves();

void main()
{
clrscr();

printf("Ingrese cadena: ");
reves();
getch();
}

void reves()
{
char a;
a=getchar();
if(
a!='\n')
    
reves();
putchar(a);//o tambien printf("%c",a);


Bueno, espero q te sirva...
Besitos!!