elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  invertir una frase en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: invertir una frase en C  (Leído 7,264 veces)
lucho666

Desconectado Desconectado

Mensajes: 2


Ver Perfil
invertir una frase en C
« en: 17 Octubre 2014, 16:13 pm »

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


En línea

milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: invertir una frase en C
« Respuesta #1 en: 17 Octubre 2014, 17:56 pm »

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define TAM 90
  4.  
  5. void readLine(char cadena[], int tam)
  6. {
  7.    char c;
  8.    fgets(cadena,tam,stdin);
  9.    if (cadena[strlen(cadena)-1] == '\n')
  10.        cadena[strlen(cadena)-1] = '\0';
  11.    else
  12.    {
  13.        cadena[tam-1] = '\0';
  14.        while((c = getchar()) != '\n'){};
  15.    }
  16. }
  17.  
  18. int main()
  19. {
  20.    char frase[TAM];
  21.    printf("Ingrese frase: ");
  22.    readLine(frase,TAM);
  23.    printf("%s\n",frase);
  24.  
  25.    int i=strlen(frase);
  26.    int aux;
  27.    for(i; i>=0; i--)
  28.    {
  29.        if(frase[i]==' '){
  30.            aux = i+1;
  31.            while(frase[aux] !=' '){
  32.                if(aux==strlen(frase))
  33.                    break;
  34.                printf("%c",frase[aux]);
  35.                aux++;
  36.            }
  37.            printf(" ");
  38.        }
  39.        if(i==0){
  40.            aux = i;
  41.            while(frase[aux] !=' '){
  42.                printf("%c",frase[aux]);
  43.                aux++;
  44.            }
  45.        }
  46.    }
  47.    return 0;
  48. }

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


« Última modificación: 17 Octubre 2014, 17:58 pm por freeCode » En línea

La abstracción es la clave para lidiar con la complejidad.
lucho666

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: invertir una frase en C
« Respuesta #2 en: 17 Octubre 2014, 18:00 pm »

muchas gracias !! lo revisare y mejorare
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Invertir cadena?
PHP
yeikos 1 4,245 Último mensaje 10 Abril 2005, 05:18 am
por byebye
[T] Invertir saltos
Ingeniería Inversa
Erik# 1 2,788 Último mensaje 1 Enero 2009, 16:47 pm
por Amerikano|Cls
[C++] Invertir matriz verticalmente
Programación C/C++
PiroskY 0 6,114 Último mensaje 17 Octubre 2010, 01:54 am
por PiroskY
Invertir Ejes del Raton
Programación Visual Basic
Elemental Code 5 4,833 Último mensaje 20 Octubre 2010, 09:36 am
por BlackZeroX
Frase sin espacios al principio ni al final en lenguaje C.
Programación C/C++
NOB2014 4 2,452 Último mensaje 28 Enero 2017, 03:18 am
por NOB2014
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines