Estrategia de prompts, primeras ideas para su construcción
SantaellaU8-EjerciciosCadenadeCaracteres
1. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
PROGRAMA NACIONAL DE FORMACIÓN
EN INFORMATICA (PNFI)
ALGORITMICAY PROGRAMACION
2. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
UNIDAD CURRICULAR: ALGORITMICA Y PROGRAMACION
Ejercicios Tratamiento de Cadena de Caracteres
Puntos a tratar
1. Ejercicios Resueltos de Tratamiento de Cadena de Caracteres
2. Ejercicios Propuestos de Tratamiento de Cadena de Caracteres
1. Ejercicios Resueltos de Tratamiento de Cadena de Caracteres
/*1. Programa que cuenta la cantidad de vocales que existen en una cadena de caracteres.*/
#include <iostream>
#include<stdio.h>
using namespace std;
char texto[100];
int a,e,i,o,u;
int main()
{
cout << "INGRESA UN TEXTO Y CONTARE LAS VOCALES QUE USASTE" <<
endl;
cin.getline(texto,40);
for(int j=0; j<=100; j++)
{
if(texto[j]=='a' || texto[j]=='A') a++;
if(texto[j]=='e' || texto[j]=='E') e++;
if(texto[j]=='i' || texto[j]=='I') i++;
if(texto[j]=='o' || texto[j]=='O') o++;
if (texto[j]=='u' || texto[j]=='U') u++;
}
cout <<"USASTE UN TOTAL DE " << a+e+i+o+u << " VOCALES" << endl;
cout << "DE LAS CUALES " << a << " SON A" << endl;
cout << e <<" SON E" << endl;
cout << i <<" SON I" << endl;
cout << o <<" SON O" << endl;
cout <<"Y " << u <<" SON U" << endl;
return 0;
}
3. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
/*2. Programa que reemplaza los espacios en blanco de una cadena por asteriscos “*”.*/
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
char cadena [100];
char cadena_modificada [100];
int i=0,largo=0;
cout << "-----------------------------" << endl;
cout << "Ingrese una cadena:" << endl;
cin.getline(cadena,100);
largo=strlen(cadena) ;
cout <<"La longuitud de la cadena ingresada es de:" <<largo << endl;
for (i=0; i<largo ;i++)
if (cadena[i]==' ')
cadena_modificada[i]='*';
else
cadena_modificada[i]= tolower(cadena[i]);
cout <<"-----------------------------" << endl;
cout << "Reemplazados los espacios por asteriscos, la cadena queda asi:" <<
cadena_modificada << endl;
return 0;
}
/*3. Construya un programa que modifique una cadena en mayúsculas y en menúscula.*/
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
char cadena [100];
char cadena_modificada [100];
int i=0,largo=0,b=0;
cout <<"-----------------------------" << endl;
cout <<"Ingrese una cadena:" << endl;
cin.getline(cadena,100);
largo=strlen(cadena) ;
cout <<"La longuitud de la cadena ingresada es de:" <<largo << endl;
for (i=0 ;i<=largo;i++)
cadena_modificada[i]= toupper(cadena[i]);
cout << "-----------------------------"<<endl;
cout << "La cadena en mayúscula: " <<cadena_modificada <<endl;
for (i=0; i<=largo ;i++)
4. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
cadena_modificada[i]= tolower(cadena[i]);
cout << "-----------------------------"<< endl;
cout << "La cadena en minúscula es: " << cadena_modificada<< endl;
return 0;
}
/*4. Algoritmo que calcula la cantidad de espacios en blanco en una cadena de 100
caracteres.*/
#include<iostream>
#include<string.h>
using namespace std;
int contar(char cadena[100])
{
int t=strlen(cadena);
int c=0;
for(int i=0;i<t;i++)
if(cadena[i]==' ') c++;
return c;
}
int main()
{
char cadena[100];
cout<<"Digite Cadena de texto:"<<endl;
cin.getline(cadena,100);
cout<<"La cantidad de espacios es:"<<contar(cadena) << endl;
return 0;
}
/*5. Construya un Programa para calcular el tamaño de una cadena de máximo 100
caracteres.*/
#include<iostream>
using namespace std;
int numCaracteres(char []);
int main()
{
char cadena[100];
cout<<"Ingrese cadena : " << endl;
cin.getline(cadena,100);
cout<<"El numero de caracteres de "<<cadena<<" es : "<<numCaracteres(cadena)<<endl;
return 0;
}
int numCaracteres(char cad[])
{
5. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
int i=0;
while(cad[i]!=0)
i++;
return i;
}
/*6. Realizar un programa para comprobar si una palabra es palíndroma, es decir que se lee
igual por la izquierda que por la derecha */
#include <iostream>
# include <string.h>
using namespace std;
int main()
{
char pal[40],pal2[40];
int n,x,a=0,p=0,e=0,u;
char b=' ';
cout <<"Introduzca una palabra:" << endl;
cin.getline(pal,40);
n=strlen(pal);
for (u=0;u<=n;u++)
{
if (pal[u]==b) u++;
pal2[e]=pal[u];
e++;
}
x=0;
n=strlen(pal2);
for (x=n-1;x>=0;x--)
{
if (pal2[x]==pal2[a]) p++;
a++;
}
if (p==n)
cout << "La palabra es palindrome " << endl;
else
cout << "La palabra no es palindrome " << endl;
return 0;
}
/*7. Construya un programa en C++ que solicite al usuario sus nombres y apellidos en
variables
separadas. Concatene ambas cadenas y muestre el resultado por pantalla. */
#include <iostream>
#include <string.h> //Para strcat()
6. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
using namespace std;
int main()
{
char nombre[20];
char apellido[20];
cout << "Introduzca su Nombre:" << endl;
cin >>nombre;
cout << "Introduzca su Apellido:" << endl;
cin >>apellido;
strcat(nombre, apellido);
cout << "Su nombre completo es:" << nombre << endl;
return 0;
}
/*8. Dada una cadena llamada “entrada”, construya un programa que invierta el orden de
los caracteres y los almacene en otra cadena llamada “salida”. Ejemplo entrada=mango,
salida=ognam.*/
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char entrada[100];
char salida[100];
int n,i,j;
cout<<"Ingrese el texto : " << endl;
cin.getline(entrada,100);
n=strlen(entrada);
j=n-1;
cout << j << endl;
cout << n << endl;
for(i=0; i<=n; i++)
{
salida[i] = entrada[j];
j--;
}
cout << salida << endl;
cout<<"Cadena al reves: "<< salida <<endl;
return 0;
}
#include <iostream>
#include <string.h>
using namespace std;
7. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
int main()
{
char a[80];
int longitud;
longitud = 0;
cout << "Introduce una cadena máximo de 80 caracteres: " << endl;
cin >> a;
cout << a << endl;
longitud = strlen(a);
cout << "Longitud de la cadena: " << strlen(a) << endl;
return 0;
}
/*9. Construya un programa que elimine los espacios en blanco que existen en una cadena
de caracteres, es decir realice compactación de cadenas.*/
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int i,j=0;
char con_esp[40];
char sin_esp[40];
cout << "Ingrese la cadena:" << endl;
cin.getline(con_esp,40);
for(i=0;i<40;i++)
if(con_esp[i] != ' ')
{
sin_esp[j] = con_esp[i];
j++;
}
cout <<"La cadena con espacios es:" <<con_esp <<endl;
cout << "La cadena sin espacios es:" <<sin_esp << endl;
return 0;
}
8. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
2. Ejercicios Propuestos de Tratamiento de Cadena de Caracteres
1. Escriba una función que dada dos palabras decida si una de ellas está incluida en la otra.
2. Construir una función PASSWORD que pida por teclado una cadena y la compare con
una cadena guardada. Si coinciden, el programa debe devolver 0; en otro caso, devolver 1.
Utilizando el resultado de la función mostrar el mensaje “Acceso Permitido” o “Acceso
denegado” según corresponda.
3. Escriba una función reverse(s) que invierta la cadena de caracteres s.
4. Diseñe y codifique un programa que pueda realizar los siguientes procesos utilizando un
menú que le permita al usuario escoger la acción a ejecutar:
a. Capturar dos cadenas, concatenarlas y visualizar el resultado.
b. Capturar dos cadenas e intercambiarlas.
c. Capturar una cadena y pedir la búsqueda de un carácter en ella. Visualizar su
posición.
d. Capturar dos cadenas, compararlas y visualizarlas en orden.
e. Capturar una cadena y visualizar su longitud.
f. Capturar dos cadenas y copiar n caracteres de la primera en la segunda. Visualizar el
resultado.
g. Finalizar
5. Escribir un programa que lea una cadena, la longitud de la línea no será especificada
(finalizara el ingreso con el retorno de carro), pero se asume que no excederá los 80
caracteres y terminará siempre con “.”.
El programa debe contener:
Una función que lea una cadena
Una función que devuelva la cantidad de palabras de cuatro letras que hay en la cadena,
además de deber reemplazar las palabras de cuatro letras por # en la misma función.
9. Algorítmica y Programación Unidad 8. Cadena de Caracteres Ing. Sullin Santaella
Una función que imprima la cantidad de palabras de cuatro letras y la cadena
modificada.
6. Escriba un programa que lea una cadena, la longitud de la línea no será especificada (se
terminará el ingreso con el retorno de carro), pero se asume que no excederá los 80
caracteres.
El programa debe contener:
Una función que lea la cadena.
Una función que devuelva un entero que indica la cantidad de vocales que hay en la
cadena, además se debe reemplazar cada vocal con * en la mima función.
Una función que imprima la cantidad de vocales y la cadena modificada.
Ejemplo:
L A C A S A E S T A D E S O C U P A D A
El programa debe devolver “En la cadena hay 10 vocales”, y la cadena modificada:
L * C * S * * S T * D * S * C * P * D *
7. Escribir un programa que, dada una cadena de caracteres y un entero correspondiente a
una posición válida dentro de ella, genere una nueva cadena de caracteres que contenga
todos los caracteres a la izquierda de dicha posición, pero en orden inverso.
8. Escribir un programa que, dada una cadena de caracteres, la limpie de caracteres blancos.
Por ejemplo, la cadena "Esto es una frase" deberá transformarse en “Estoesunafrase".