Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 08 de Julio 2016, 19:11

Título: C (LenguajeC) Mostrar cadena de texto invertida por pantalla al revés CU00551F
Publicado por: pedro,, en 08 de Julio 2016, 19:11
Hola, dejo una posible solución al ejercicio CU00551F del taller de programación aprende lenguaje C.

Citar
EJERCICIO
Crea un programa en C que pida una cadena al usuario y muestre por pantalla la cadena invertida.
Por ejemplo, si la cadena introducida es calor, deberá mostrarse por pantalla rolac. Si la cadena introducida es aprenderaprogramar.com deberá mostrarse por pantalla moc.ramargorparednerpa

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char cadena[200];
    int i = 0;
    int j;
    printf("Introduce una cadena de texto: \n");
    gets(cadena);
    printf("\nLa cadena introducida es: %s\n\n", cadena);
    while(cadena[i]!='\0'){
        i++;
    }
    printf("La cadena al rev\x82s es:\n\t");
    for (j=i-1; j>=0; j--){
        printf("%c", cadena[j]);
    }
    puts("");
    return 0;
}

Saludos.  ;D
Título: Re:C (LenguajeC) Mostrar cadena de texto invertida por pantalla al revés CU00551F
Publicado por: César Krall en 12 de Julio 2016, 17:20
Hola!

El programa cumple lo que se pedía con algo poco habitual ¿Estás contando las letras de una cadena con un bucle y cuentas de uno en uno hasta que encuentras el carácter final de cadena? Eso se diría que es poco eficiente porque tener que recorrer de uno en uno algo que puede ser muy largo en general diremos que es ineficiente. En este caso parece más aconsejable usar algo como strlen u otra alternativa que te permita saber cuántos caracteres tiene la cadena sin necesidad de contar los caracteres de uno en uno.

Saludos!
Título: Re:C (LenguajeC) Mostrar cadena de texto invertida por pantalla al revés CU00551F
Publicado por: pedro,, en 13 de Julio 2016, 22:20
Hola César.

En realidad eso es lo que hace el código, hace más de un mes que hice el ejercicio y no te puedo decir porqué lo resolví de esa forma, me imagino que solo intentaba hacer pruebas, como siempre hago con todos los ejercicios, aunque mirando el los respuestas que yo tengo, también lo tengo usando strlen, que sería la respuesta que tendría que haber colocado aquí en el foro.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char cadena[200];
    int i = 0;
    printf("Introduce una cadena de texto: \n");
    gets(cadena);
    printf("\nLa cadena introducida es: %s\n\n", cadena);
    printf("La cadena al rev\x82s es:\n\t");
    for (i=strlen(cadena); i>=0; i--){
        printf("%c", cadena[i]);
    }
    puts("");
    return 0;
}


Gracias por corregir.

Saludos.
Título: Re:C (LenguajeC) Mostrar cadena de texto invertida por pantalla al revés CU00551F
Publicado por: César Krall en 15 de Julio 2016, 17:00
Ok!