[ Foro de C ]

Insertar una cadena en una posición de otra

03-Aug-2014 23:41
Numb 1324
5 Respuestas

Hola! Soy nuevo en el foro y recién comienzo a programar en C. Acabo de entrar al tema de los arreglos y cadenas de caracteres y aún no les entiendo del todo. Me asignaron una práctica de unos 10 ejercicios con arreglos en lenguaje C. Los he hecho casi todos pero hay 3 ejercicios con los que ya no puedo más. Espero que alguien pueda ayudarme. Gracias de antemano. Estos son los ejercicios:

1) Realice un programa que capture un arreglo de N elementos. El programa debe determinar el Máximo Común Divisor de los elementos del arreglo.

2) Realizar un programa que capture dos cadenas de texto. El programa debe permitir insertar el contenido de una de las cadenas en una posición especificada de la otra cadena.


07-Aug-2014 12:47
Nacho Cabanes (+30)

El del MCD lo has preguntado también en otro hilo, así que te he contestado en el otro hilo.

En cuanto al de "Insertar una cadena en una posición de otra", ¿qué sabes hacer y qué no? Por ejemplo, tres ejercicios simples que te ayuden a afianzar conocimientos y llegar hasta allí:

- Revisa una cadena de texto, para decir cuantas "a" contiene.

- A partir de una cadena de texto, crea otra que contenga un espacio entre cada par de letras.

- A partir de dos cadenas de texto, crea una nueva cadena que contenga la primera y luego la segunda.

- (Si has conseguido esos 3, el 4º sería el que te proponen, que es apenas un poco más difícil que el tercero)


(todo ello se puede hacer con un "for" y "strlen", no necesitas más).


07-Aug-2014 21:44
Luis Torres (+12)

Me podría dar una sugerencia sobre como resolver el primero de los ejercicios que propone? Yo lo realicé, pero resulta que no me será útil para resolver el problema que planteó Num1324.

Saludos.


09-Aug-2014 00:10
Nacho Cabanes (+30)

¿Qué primer ejercicio? ¿El del MCD? Mira el otro hilo y seguimos la conversación en él.


09-Aug-2014 00:46
Luis Torres (+12)

No, el que corresponde al siguiente enunciado:

- A partir de una cadena de texto, crea otra que contenga un espacio entre cada par de letras.

Gracias.


12-Aug-2014 20:10
Nacho Cabanes (+30)

No es difícil:

- Para la nueva cadena, reservas como tamaño 2n-1 (siendo n el tamaño de la cadena inicial)

- Recorres la cadena inicial (con un "for", por ejemplo), y para cada elemento, lo vuelcas en la cadena final y vuelcas a continuación un espacio... excepto si es la última posición.

(por la forma de trabajar de C, puede ser más rápido reservar 2n, recorrer con un "while" volcando a ciegas cada dato y un espacio y luego reemplazar el último por un \0, pero eso ya son detalles para intentar acelerar la implementación en un lenguaje concreto, no es algo genérico del algoritmo).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)