Vous êtes sur la page 1sur 3

Algoritmos y Estructura de Datos 1

CADENAS DE CARACTERES
Ejercicios Propuestos
Para cada pregunta escriba el programa correspondiente que pruebe la función solicitada.

1. Función cuentaVocales; que recibe una cadena de caracteres y un carácter vocal para
luego devolver el número de ocurrencias de la vocal en la cadena.

2. Función reemplazaBlancos; que recibe una cadena de caracteres y un carácter. La


función reemplaza todos los caracteres espacio en blanco por el carácter recibido.
Finalmente, la función imprime la cadena transformada.

3. Función reemplazaBlancos; que recibe como parámetros dos cadenas; la cadena inicial,
la cadena nueva y un carácter. La función construye en la cadena nueva, la cadena inicial
donde se han reemplazado todos los caracteres espacio en blanco por el carácter recibido.
Tanto la cadena inicial como la cadena nueva deben ser impresas en la salida estándar.

4. Función generaRepetida que recibe una cadena cad y un número n. La función generará
la cadena cad tantas veces indique el entero n. Por ejemplo si cad = “Hola que tal”, y n =
3; entonces cad = ”Hola que tal Hola que tal Hola que tal”

5. Función que recibe tres cadenas: nombre, apellido paterno y apellido materno en ese orden
y luego une en una sola cadena: Apellido paterno, apellido materno y nombre.

6. Se pide implementar una función que reciba como parámetros una cadena, y dos enteros
que representan las posiciones de dos palabras dentro de la cadena. La función debe
intercambiar de posición tales palabras. Debe tener presente que para que el intercambio
se realice, las posiciones deben existir en la cadena, caso contrario imprimir el mensaje “No
es posible el intercambio”.

7. Función cuentaPalabras que recibe una cadena de caracteres y devuelve el número de


palabras que existen en la cadena.

8. Función empiezaCaracter tal que recibe una cadena y un carácter. La función devuelve
el número de palabras de la cadena que empiezan con el carácter recibido como argumento.

9. Función que recibe dos cadenas; la primera cadena será una oración y la segunda una
palabra. La función debe imprimir el número de ocurrencias de la palabra dentro de la
cadena.

10. Se forma diptongo cuando se unen dos vocales en un solo sonido o sílaba. Esta unión puede
darse cuando se unen dos vocales cerradas (i, u) o una vocal cerrada más una vocal abierta
(a, e, o), o también una vocal abierta más una vocal cerrada. La h colocada entre dos vocales
no interesa, el diptongo sigue allí. Son ejemplos de diptongo: prohibido, desahucio, Piura.
Se pide escribir una función tal que reciba una cadena de caracteres y devuelva el número
o cantidad de diptongos que existen en la cadena recibida. Por ejemplo, si la cadena recibida
es: “En el puerto de Huanchaco, Guayo miro al cielo y cogio la guanabana con el
guante”; la función devuelve el entero 7. Considere todos los casos y asuma que no existen
vocales acentuadas. Nota: Es posible que la función pedida requiera llamar a otras funciones.

11. Escriba una función llamada “procesa” que recibe como parámetros dos cadenas cad1 y
cad2 de tamaño N. La función presenta al usuario una por una todas las palabras de cad1
Ingº EDGAR RUIZ LIZAMA
Algoritmos y Estructura de Datos 2
preguntando si se toma en cuenta o no. En cad2 se construye una cadena sólo con aquellas
palabras de cad1 que fueron elegidas por el usuario al momento de responde las preguntas.

Por ejemplo, si cad1 es “Me encanta el curso de Algoritmos”

La función “procesa” realizará lo siguiente:

¿Tomar en cuenta <Me>? SI


¿Tomar en cuenta <encanta>? Si
¿Tomar en cuenta <el>? NO
¿Tomar en cuenta <curso>? NO
¿Tomar en cuenta <de>? NO
¿Tomar en cuenta <Algoritmos>? SI

Entonces la cadena construida en cad2 será: “Me encanta Algoritmos”

Asuma que las palabras de cad1 están separadas por un sólo espacio en blanco. Tenga en
cuenta que las respuestas ingresadas por el usuario podrían estar en mayúsculas,
minúsculas o una combinación de ambas.

12. Escribir una función que reciba como parámetro una cadena y que devuelva la cantidad de
veces que aparecen dos consonantes juntas en dicha cadena. Por ejemplo, si la cadena
recibida fuera: “el curso de algoritmos es interesante” la función devolverá 5. Nota: debe
tener en cuenta las mayúsculas y minúsculas.

13. Escribir una función que devuelva la cantidad de palabras con longitud n en una cadena.
Tanto la cadena como el entero n son pasadas como argumento a la función.

14. Escribir una función que reemplaza una subcadena por otra, dentro de una cadena principal,
para lo cual recibe como parámetros tres cadenas de caracteres, la primera es la cadena
principal, la segunda la cadena a reemplazar y la tercera la cadena de reemplazo.

15. Escribir la función buscaLetra tal que reciba una cadena y un carácter alfabético. La función
busca la primera ocurrencia de la letra en la cadena y devuelve la posición donde existe. Si
no existe ninguna ocurrencia debe devolver –1 en señal de error. Se pide plantear dos
soluciones:

(a) usando strchr y


(b) sin usar strchr

16. Escribir la función cuentaLetra tal que reciba una cadena y una letra. La función devuelve el
número de veces que la letra se encuentra en la cadena.

17. Sin hacer uso de la función strcpy(cad1,cad2). Escribir la función copiaCadena(cad1,


cad2) tal que permita copiar cad2 en cad1.

18. Sin hacer uso de la función strcat(cad1, cad2). Escribir la función concatenaCadena(cad1,
cad2) tal que realice la concatenación de cad2 en cad1.

19. Sin hacer uso de la función strcmp(cad1,cad2). Escribir la función comparaCadenas(cad1,


cad2) tal que compare cad1 con cad2 y devuelve un entero según lo siguiente:

0 si cad1 es igual que cad2


>=1 si cad1 es mayor que cad2
<=1 si cad1 es menor que cad2

Ingº EDGAR RUIZ LIZAMA


Algoritmos y Estructura de Datos 3
20. Escribir la función buscaSubcadena, tal que reciba dos cadenas: cadena y subcad; la
función busca subcad en cadena y devuelve un valor de verdad. Debe asegurarse que
subcad es de menor longitud que cadena.

21. Escribir la función cuya invocación en main( ) es: suprimeImpares( cad1, cad2 ); tal que
reciba una cadena en cad1 y proceda a guardar en cad2 sólo aquellas palabras de cad1
que tienen longitud impar. Por ejemplo: si cad1 = “Un ejemplo de cadenas para prueba”;
entonces en cad2 se almacenará cad2 = “ejemplo cadenas”.

22. En las fórmulas de los compuestos químicos los hidróxidos terminan en OH.

Escriba una función con el siguiente prototipo:

int encuentraHidroxidos( char formu[ ], char hidrox[N][M] );

donde formu es una cadena que contiene un conjunto de fórmulas de diversos compuestos
químicos, hidrox es el vector de cadenas a generar donde se almacenarán sólo las fórmulas
que corresponden a los hidróxidos.

Por ejemplo, si

formu = “KOH H2O2 NaCl NaOH MgOH CO2 C9H8O4 CaOH”;

El vector hidrox generado por la función será:

KOH NaOH MgOH CaOH

Así mismo la función devolverá el valor 4; pues son 4 las fórmulas de hidróxidos almacenados
en el vector.

23. Escribir una versión para el problema 22, con el prototipo

int encuentraHidroxidos( char *formu, char **hidrox );

 ERL/ 2018

Ingº EDGAR RUIZ LIZAMA