Dev - C++ - Cadena de caracteres al revés

 
Vista:
sin imagen de perfil

Cadena de caracteres al revés

Publicado por Johan rodriguez (3 intervenciones) el 06/10/2020 04:17:13
Buenas noches soy nuevo trabajando en C, queria pedirles ayuda para solucionar este programa: Escribe un programa en C que, al recibir como dato una cadena de caracteres,
imprima la cadena en forma inversa. Por ejemplo, si la cadena es la siguiente:

mundo del economía novena la es México

el programa debe imprimirla de esta forma:

México es la novena economía del mundo

Dato: cad[50] (donde cad representa la cadena de 50 caracteres como máximo).
Ya llevo un avance pero no e logrado cambiar de posicion solo invertir las palabras.
Este es mi codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
 
int main ()
{
	int Y=0,X=0;
	char Z[50];
	printf("Digite las palabras\n");
	gets(Z);
	while(Z[X] != '\0')
	{
		printf("%c",Z[X]);
		X++;
 
	}
	printf("\nLa palabra invertida es: %s", strrev(Z));
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cadena de caracteres al revés

Publicado por Rodrigo (539 intervenciones) el 06/10/2020 08:30:59
Hay al menos 3 maneras de hacerlo:

- Invertir cada palabra en particular, dentro del string, y cuando todo este invertido, invertir el string completo.

- Un ciclo que avanza desde la ultima letra hacia la primera.
Se busca el final de una palabra (cualquier cosa distinta de separador) y luego se busca el comienzo de la palabra.
Se termina el ciclo cuando se haya acabado el string (hasta llegar al indice 0).

- Recursivamente, obtener la primera palabra, pero no imprimirla, sino llamar recursivamente, y que se escriba esta antes de escribir la primera palabra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cadena de caracteres al revés

Publicado por Alfil (1444 intervenciones) el 06/10/2020 19:26:58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int main()
{
    char cad[50];
    int k = 0, j;
 
    printf("\nCadena:\n");
    scanf("%49[^\n]", cad);
 
    printf("\n");
 
    while (cad[k] != '\0')
        k++;
 
    for (int i = k - 1 ; i >= 0; i--)
    {
        if (cad[i] == ' ' || i == 0)
        {
            j = i == 0 ? i : i + 1;
            while (cad[j] != ' ' && j < k)
                printf("%c", cad[j++]);
 
            printf(" ");
        }
    }
 
    printf("\n");
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cadena de caracteres al revés

Publicado por AGH (1 intervención) el 27/11/2021 02:17:32
si no es mucha molestia podrias explicar el codigo, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar