Está en la página 1de 2

Tema 7.

Cadenas de Caracteres

Ejercicios
Tema 7. Cadenas de Caracteres

1. Escribir un programa que lea una frase caracteres a carácter utilizando scanf.

2. Escribir un programa que lea una frase y posteriormente la escriba carácter a carácter utilizando printf.

3. Leer una frase y mostrarla con un carácter en cada línea.

4. Escribir un programa que lea una frase y cuente el número de palabras que contiene. Escribir dos
versiones del programa:

• Asumir que cada palabra está separada por un sólo blanco.

• No se sabe como están separadas las palabras. Pueden estar separadas por mas de un blanco 0
por signos de puntuación.

5. Escribir programas que realicen las mismas tareas que las funciones strcat(), strcpy(), strcmp() y
strlen().

6. Leer una frase y contar el número de vocales (de cada una) que aparecen.

7. Leer una frase y determinar qué caracteres se encuentran repetidos, y cuántas veces aparece repetido
cada carácter. Utilizar un vector con los caracteres que van apareciendo y otro correspondiente a la
misma posición con el número de repeticiones.

8. Sustituir todos los espacios en blanco de una frase por un asterisco.

9. Dado un vector que contiene un texto de tamaño N como máximo, eliminar los espacios en blanco
(compactar la frase).

10. Escribir un programa que dada una frase de tamaño máximo N, determine si es un palíndromo o no. Un
palíndromo es una frase que, atendiendo sólo a sus letras e ignorando los espacios, acentos, signos de
puntuación y tipo de letra (mayúscula o minúscula) expresa lo mismo leída de izquierda a derecha que
de derecha a izquierda. “dábale arroz a la zorra el abad”.

11. Dada una frase comprobar si el balanceo de los paréntesis es correcto. Es decir,
“(ccc(ccc)cc((ccc(c))))” es correcto, pero “)ccc(ccc)cc((ccc(c)))(“ no lo es, aunque tenga el mismo
número de paréntesis abiertos que cerrados.

12. Escribir un programa que cuente el número de palabras en un texto.

13. Escribir un programa que cuente el número de palabras en un texto, que tengan al menos cuatro
vocales diferentes.

14. Un psiquiatra tiene un paciente que habla invirtiendo las frases completas. (por ejemplo: si quiere decir
“hola caracola”, lo que realmente dice es: “alocarac aloh”). Para poder comunicarse con el paciente
decide hacer un programa que traduzca lo que él dice al lenguaje del paciente. Implementar dicho
programa. Hacer dos versiones:

• Utilizando un vector auxiliar.

• Invirtiendo en el mismo vector.

15. Invertir todas las palabras de una frase:

• Utilizando un vector auxiliar.

Inma García 1/2


Tema 7. Cadenas de Caracteres
• Dejándolas en el mismo vector.

16. Escribir un programa que lea frase y la procese como si pasase a través de una ventana (de 20
posiciones), Debe aparecer dicha frase moviéndose de derecha a izquierda. Cuando por la ventana
pase el último carácter de la frase, ésta volverá a desfilar de nuevo desde el principio. Así un número de
veces indicado por el usuario.

17. Leer el nombre y los dos apellidos de una persona (en tres cadenas de caracteres diferentes) y unirlo
en una única cadena.

18. Leer tres cadenas de caracteres correspondientes, respectivamente, al nombre y los dos apellidos de
una persona y crear un nuevo vector que contenga: apellido 1 apellido2, inicial.

19. Leer el nombre de una persona y un carácter y comprobar si dicho carácter está en su nombre.

20. Leer el nombre completo de una persona y un apellido y comprobar si el apellido pertenece a esa
persona.

21. Leer una cadena de caracteres, donde en lugar de ñ se han utilizado los caracteres ny. Crear una
nueva cadena de caracteres sustituyendo ny por ñ.

22. Escribir un programa que codifique y decodifique una frase. El procedimiento se invierte para
decodificar la línea de texto. Para codificar el texto se emplea el siguiente proceso:

• Convertir cada carácter (incluido blancos) en su ASCII equivalente.

• Generar un entero aleatorio y sumarlo a cada valor ASCII (el mismo valor se usa en todo el
proceso).

• Los valores N1 y N2 representan el valor menor y mayor permitido en el código ASCII. Si el número
obtenido en el paso anterior es mayor que N2 se resta de ese numero el mayor múltiplo posible de
N2 y se suma la diferencia a N1.

• Imprimir los caracteres ASCII.

23. Pig Latín es una forma codificada de escribir y hablar de los niños ingleses. Una palabra en pig latín se
forma trasponiendo las sílabas de una palabra y anteponiendo la letra ‘a’. Escribir un programa en C
que acepte una línea de texto e imprima el correspondiente texto en pig latín. La línea de texto tendrá
un máximo de 80 caracteres y un solo espacio en blanco entre palabras. Por ejemplo:

gato ➨ atoga
Pascal ➨ acalPas
Pig latín ➨ aPig atinla

Inma García 2/2

También podría gustarte