
Invertir una palabra
C/Visual C
Publicado el 14 de Enero del 2003 por Sebastian (12 códigos)
10.335 visualizaciones desde el 14 de Enero del 2003
Invierte palabras de una frase

















/*Id. programa: String 4 *//*Autor: Nieva, Sebastian *//*Fecha de creacion: 19/03/02 *//*Fecha de ultima modificacion: 27/03/02 *//*Tarea: Invierte palabras de una frase *//*Version: 1.0 *//*Lenguaje: ANSI C *//*Requerimientos: Nada *//*Recibe: Nada *//*Entrega: Nada */#include<stdio.h>
#include<conio.h>
#define MAX 256
void ingreso(char*);
void invertir(char *, char*);
void main(void)
{char vec[MAX],inversion[MAX];
clrscr();
printf ("\t\t\t*****************\n");
printf ("\t\t\t* EJERCICIO 4 *\n");
printf ("\t\t\t*****************\n");
printf ("\t\t - PANTALLA PRINCIPAL -\n\n");
ingreso(vec);
invertir(vec, inversion);
printf("FRASE INGRESADA: %s\n", vec);
printf("FRASE INVERTIDA: %s\n", inversion);
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVERSION 1.0\nCOPYRIGHT 2002-2010\n");
printf("PROGRAMA DESARROLLADO POR SEBASTIAN NIEVA \n");
printf("OPRIMA UNA TECLA PARA TERMINAR........");
getch();
}void ingreso(char *s)
{printf("INGRESE UNA FRASE\n");
gets(s);
}void invertir(char *s, char *inv)
{int strlen(char *);
void strcpys(char *, char *);
char *posAux=s; //posicion auxiliar desde donde comienza la copia
int cant=0,
longitud=strlen(s);
while(*s!=NULL)
{if(*s==' ') //ascii del blanco
{*s=NULL;
strcpys((inv+longitud-cant),posAux);
if(cant>0)//YA SE LEYO UN CARACTER <> " "
strcpys((inv+longitud-(cant+1))," "); //el espacio
*s=' '; //para no modificar el origen
posAux=s+1; //donde comienza la siguiente palabra
}s++;
cant++;
}strcpys((inv+longitud-cant),posAux);
*(inv+longitud)=NULL; //finalizo la cadena invertida
}void strcpys(char *d, char *o)
{while(*o!=NULL)
*d++=*o++; /*No termina con null porque sino la cadena inversion
mostraria solo la primer palabra*/}int strlen(char *s)
{ int cant=0;while(*s!=NULL)
{cant++;
s++;
}return cant;
}
Comentarios sobre la versión: Versión 1 (0)
No hay comentarios