You are on page 1of 9

PROGRAMA NACIONAL DE FORMACIN

EN INFORMATICA (PNFI)

ALGORITMICA Y PROGRAMACION

Algortmica y Programacin

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

Algortmica y Programacin

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 maysculas y en menscula.*/


#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 mayscula: " <<cadena_modificada <<endl;
for (i=0; i<=largo ;i++)
Algortmica y Programacin

Unidad 8. Cadena de Caracteres

Ing. Sullin Santaella

cadena_modificada[i]= tolower(cadena[i]);
cout << "-----------------------------"<< endl;
cout << "La cadena en minscula 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 tamao de una cadena de mximo 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[])
{
Algortmica y Programacin

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 palndroma, 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()
Algortmica y Programacin

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;
Algortmica y Programacin

Unidad 8. Cadena de Caracteres

Ing. Sullin Santaella

int main()
{
char a[80];
int longitud;
longitud = 0;
cout << "Introduce una cadena mximo 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 compactacin 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;
}

Algortmica y Programacin

Unidad 8. Cadena de Caracteres

Ing. Sullin Santaella

2. Ejercicios Propuestos de Tratamiento de Cadena de Caracteres


1. Escriba una funcin que dada dos palabras decida si una de ellas est incluida en la otra.

2. Construir una funcin 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 funcin mostrar el mensaje Acceso Permitido o Acceso
denegado segn corresponda.

3. Escriba una funcin reverse(s) que invierta la cadena de caracteres s.

4. Disee y codifique un programa que pueda realizar los siguientes procesos utilizando un
men que le permita al usuario escoger la accin a ejecutar:
a. Capturar dos cadenas, concatenarlas y visualizar el resultado.
b. Capturar dos cadenas e intercambiarlas.
c. Capturar una cadena y pedir la bsqueda de un carcter en ella. Visualizar su
posicin.
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 lnea 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 funcin que lea una cadena

Una funcin que devuelva la cantidad de palabras de cuatro letras que hay en la cadena,
adems de deber reemplazar las palabras de cuatro letras por # en la misma funcin.

Algortmica y Programacin

Unidad 8. Cadena de Caracteres

Ing. Sullin Santaella

Una funcin 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 lnea 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 funcin que lea la cadena.

Una funcin que devuelva un entero que indica la cantidad de vocales que hay en la
cadena, adems se debe reemplazar cada vocal con * en la mima funcin.

Una funcin que imprima la cantidad de vocales y la cadena modificada.

Ejemplo:

L A

C A S

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 *

T *

D *

C * P * D *

7. Escribir un programa que, dada una cadena de caracteres y un entero correspondiente a


una posicin vlida dentro de ella, genere una nueva cadena de caracteres que contenga
todos los caracteres a la izquierda de dicha posicin, 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".

Algortmica y Programacin

Unidad 8. Cadena de Caracteres

Ing. Sullin Santaella