hola gente!!
tengo un pequeño proble en C , queria ver si me podrian ayudar ..
tengo que hacer un programa que lea una frase por pantalla y me la devuelva invertida , es decir: hola gente como estan ----> estan como gente hola
trate de hacerlo con punteros pero no hay forma de que me salgra , trate de ir almacenando la cadena en una matriz y por cada espacio que se salte una fila e ingrese la otra palabra pero tampoco pude... si alguien me puede dar una mano en esto que aun no manejo muy bien C
#include <stdio.h>
#include <string.h>
#define TAM 90
void readLine(char cadena[], int tam)
{
char c;
fgets(cadena,tam,stdin);
if (cadena[strlen(cadena)-1] == '\n')
cadena[strlen(cadena)-1] = '\0';
else
{
cadena[tam-1] = '\0';
while((c = getchar()) != '\n'){};
}
}
int main()
{
char frase[TAM];
printf("Ingrese frase: ");
readLine(frase,TAM);
printf("%s\n",frase);
int i=strlen(frase);
int aux;
for(i; i>=0; i--)
{
if(frase[i]==' '){
aux = i+1;
while(frase[aux] !=' '){
if(aux==strlen(frase))
break;
printf("%c",frase[aux]);
aux++;
}
printf(" ");
}
if(i==0){
aux = i;
while(frase[aux] !=' '){
printf("%c",frase[aux]);
aux++;
}
}
}
return 0;
}
nota xd:
* El programa se puede mejorar.
* Si deseas reemplazar readLine por scanf... es tu decición.
* Si lo que querías no era imprimir invertido sino crear una nueva frase invertida, creas otro arreglo y en lugar de imprimir lo almacenas allí.
Saludos
muchas gracias !! lo revisare y mejorare