C/Visual C - cadena de carac. para c ¡¡¡urgente!!!!!!

 
Vista:

cadena de carac. para c ¡¡¡urgente!!!!!!

Publicado por roderick (2 intervenciones) el 27/10/2001 07:57:29
lo que tengo que hacer es que cuando ingrese una cadena de caracteres y presione 1, la cadena se desplase hacia la derecha y el ultimo caracter se ponga al principio y así sucesivamente.ejemplo:
caracter : "hola", presiono 1 y quede "ahol", vuelo a precionar 1 y quede "laho" y así hasta que quede otra vez como al principio, y eso no es todo,si preciono 2, se me desplase en la direccion contraria, osea hacia la izquierda.
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 Alejandro

Desplazamiento de cadena de caracteres

Publicado por Alejandro (913 intervenciones) el 17/10/2024 20:14:30
Roderick, aquí tienes un ejemplo de cómo implementar el desplazamiento de una cadena de caracteres hacia la derecha o hacia la izquierda en C. Este programa permite al usuario ingresar una cadena y luego desplazarla según la opción seleccionada.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <string.h>
 
void desplazarDerecha(char *cadena) {
    int longitud = strlen(cadena);
    if (longitud > 0) {
        char ultimo = cadena[longitud - 1];
        for (int i = longitud - 1; i > 0; i--) {
            cadena[i] = cadena[i - 1];
        }
        cadena[0] = ultimo;
    }
}
 
void desplazarIzquierda(char *cadena) {
    int longitud = strlen(cadena);
    if (longitud > 0) {
        char primero = cadena[0];
        for (int i = 0; i < longitud - 1; i++) {
            cadena[i] = cadena[i + 1];
        }
        cadena[longitud - 1] = primero;
    }
}
 
int main() {
    char cadena[100];
    int opcion;
 
    printf("Ingrese una cadena de caracteres: ");
    fgets(cadena, sizeof(cadena), stdin);
    cadena[strcspn(cadena, "\n")] = 0; // Eliminar el salto de línea
 
    do {
        printf("Presione 1 para desplazar a la derecha, 2 para desplazar a la izquierda, 0 para salir: ");
        scanf("%d", &opcion);
 
        switch (opcion) {
            case 1:
                desplazarDerecha(cadena);
                printf("Cadena desplazada a la derecha: %s\n", cadena);
                break;
            case 2:
                desplazarIzquierda(cadena);
                printf("Cadena desplazada a la izquierda: %s\n", cadena);
                break;
            case 0:
                printf("Saliendo...\n");
                break;
            default:
                printf("Opción no válida. Intente de nuevo.\n");
        }
    } while (opcion != 0);
 
    return 0;
}

Explicación del código:



1. Funciones de desplazamiento:
- `desplazarDerecha`: Desplaza la cadena hacia la derecha, moviendo el último carácter al principio.
- `desplazarIzquierda`: Desplaza la cadena hacia la izquierda, moviendo el primer carácter al final.

2. Entrada del usuario:
- Se solicita al usuario que ingrese una cadena de caracteres.
- Se utiliza `fgets` para leer la cadena, asegurando que se manejen correctamente los espacios.

3. Menú de opciones:
- Un bucle `do-while` permite al usuario elegir entre desplazar la cadena a la derecha, a la izquierda o salir del programa.

4. Salida:
- Después de cada desplazamiento, se muestra la cadena resultante.

Puedes compilar y ejecutar este código en un entorno de desarrollo de C para probar su funcionalidad.
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