Labo - 4 - Parte - 2 C++

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

1

UNMSM FACULTAD DE INGENIERIA INDUSTRIAL


ALGORITMOS Y PROGRAMACION 2012-1
PROFESOR: EDGAR RUIZ LIZAMA

TEMA: CADENAS DE CARACTERES

EJEMPLO 1:
2

EJEMPLO 2:
3

EJEMPLO 3:
4

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.
5

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 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.
6

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:

1 si cad1 es igual que cad2


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

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 );

PROFESOR: EDGAR RUIZ LIZAMA - 2012-1

También podría gustarte