aplicaciones de cadenas de caracteres

Anuncio
Programación
Instituto Tecnológico de Celaya
APLICACIONES DE CADENAS DE CARACTERES
1. Escriba un programa en C++ que reciba como dato una cadena de
caracteres en letras minúsculas y la convierta de forma que se obtenga
una cadena equivalente en letras mayúsculas.
2. Se dice que una cadena de caracteres es un anagrama de otra si ambas
consisten sólo de letras y, tratando como iguales las letras mayúsculas y
minúsculas, ambas contienen las mismas letras (no necesariamente en
el mismo orden). Escriba un programa en C++ que reciba como dato a
dos cadenas de caracteres y las modifique de forma que se obtengan los
anagramas correspondientes. Por ejemplo:
Datos:
“gato”
“raton”
Anagramas:
“gatorn”
“ratong”
Ingeniería Química
Programación
#include<iostream.h>
#include <string.h>
#include<stdlib.h>
Instituto Tecnológico de Celaya
SOLUCIONES
int main()
{
/* Este programa convierte una cadena de letras minusculas
a su correspondiente equivalente en letras mayusculas */
char palabra_min[21], palabra_may[21];
int len,n;
/* Dato */
cout<<"Dame una palabra en minusculas. Maximo 20 caracteres \n";
cin>>palabra_min;
/*calculo del numero de caracteres*/
len = strlen(palabra_min);
/*Conversion a mayusculas*/
for(n=1; n<=len; n++)
palabra_may[n-1] = palabra_min[n-1] - 32;
/* Convertir arreglo en cadena */
palabra_may[len] = '\0';
/* Salida del resultado */
cout<<"\n";
cout<<"La palabra equivalente en mayusculas es "<<palabra_may<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
#include<iostream.h>
#include <string.h>
#include<stdlib.h>
int main()
{
/* Este programa obtiene los anagramas de dos cadenas
de caracteres */
char cadena1[21], cadena2[21];
char anagrama1[41], anagrama2[41];
char aux[2];
int len1,len2, n, m, add;
/* Datos */
cout<<"Dame una cadena de caracteres (letras, maximo 20) \n";
cin>>cadena1;
cout<<"Dame otra cadena de caracteres (letras, maximo 20) \n";
cin>>cadena2;
/*calculo del numero de caracteres de las cadenas*/
len1 = strlen(cadena1);
len2 = strlen(cadena2);
/* Asignando contenido inicial */
strcpy(anagrama1,cadena1);
strcpy(anagrama2,cadena2);
/*Obteniendo los anagramas*/
/* Primero */
for(n=1; n<=len2;n++)
{
add=1;
for(m=1; m<=len1;m++)
{
if((cadena2[n-1]== cadena1[m-1]) || (cadena2[n-1]== (cadena1[m-1]32)))
{
add =0;
break;
}
}
if(add==1)
{
aux[0] = cadena2[n-1];
aux[1] = '\0';
strcat(anagrama1,aux);
}
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
}
/* Segundo */
for(n=1; n<=len1;n++)
{
add=1;
for(m=1; m<=len2;m++)
{
if((cadena1[n-1]== cadena2[m-1]) || (cadena1[n-1]== (cadena2[m-1]32)))
{
add =0;
break;
}
}
if(add==1)
{
aux[0] = cadena1[n-1];
aux[1] = '\0';
strcat(anagrama2,aux);
}
}
/* Salida del resultado */
cout<<"\n";
cout<<"Las palabras son \t"<<cadena1<<"\t\t"<<cadena2<<"\n";
cout<<"Los anagramas son \t"<<anagrama1<<"\t\t"<<anagrama2<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
PRÁCTICA DE APLICACIÓN DE CADENAS DE
CARACTERES
Los siguientes dos programas ejemplifican el uso y manipulación de cadenas de
caracteres.
1) Codifique y ejecute lo siguiente. Omita comentarios en su código si requiere
ahorro de tiempo
#include <fstream.h> /* libreria para archivos IO */
#include<iostream.h>
#include <string.h> /* libreria de funciones para cadenas de caracteres*/
#include<stdlib.h>
int main()
{
/* Este programa lee las partes de un nombre usando cadenas
de caracteres y luego las integra y analiza usando funciones de
manipulación de cadenas. El nombre completo lo guarda en
un archivo y lo muestra en pantalla */
char materia[20]={“Matematicas”}; /* Inicializando una cadena*/
char nombre_p[20], apellido_pat[20], apellido_mat[20]; /* Otras cadenas */
char nombre[60]; /* Una ultima cadena */
double calificacion;
ofstream
csalida; /* Instruccion similar a cout */
csalida.open("lista.dat"); /* Este es el archivo de salida, lista.dat */
/* Ahora se piden cadenas de caracteres, no solo un caracter */
cout<<"Dame tu nombre propio. Si tienes mas de uno, dame el primero \n";
cin>>nombre_p;
cout<<"Dame apellido paterno. Solo dame una palabra si tiene muchas\n";
cin>>apellido_pat;
cout<<"Dame apellido paterno. Solo dame una palabra si tiene muchas\n";
cin>>apellido_mat;
cout<<"Dame tu calificacion final de ”<< materia <<”\n";
cin>>calificacion;
/*Uso de funciones: formacion del nombre completo*/
strcpy(nombre, nombre_p); /* copia la cadena nombre_p a nombre */
strcat(nombre, “ “); /* Añade un espacio a nombre */
strcat(nombre, apellido_pat); /* Añade apellido_pat a nombre */
strcat(nombre, “ “); /* Añade un espacio a nombre*/
strcat(nombre, apellido_mat); /* Añade apellido_mat a nombre*/
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
/* Salida de la informacion a pantalla y a archivo */
cout<<"\n";
cout<<materia<<”\n”; /*A pantalla*/
cout<<nombre<<"\t"<<calificacion<<"\n";
csalida<<materia<<”\n”; /* A archivo */
csalida<<nombre<<"\t"<<calificacion<<"\n";
/* Cierra el archivo lista.dat*/
csalida.close();
}
cout<<"\n";
system("PAUSE");
return 0;
2) Use el explorador de windows para buscar el archivo lista.dat
Este archivo deberá contener la misma información que salió a pantalla en el
programa anterior.
3) Escriba y ejecute el siguiente programa. Use nombres propios de una sola
palabra
#include
#include
#include
#include
<fstream.h>
<iostream.h>
<string.h>
<stdlib.h>
int main()
{
char nombre[2][20]; /* Observe: Arreglo de cadenas de caracteres */
cout<<”Dame un nombre propio \n”;
cin>>nombre[0];
cout<<”Dame otro nombre propio \n”;
cin>>nombre[1];
/*Se muestra ahora en pantalla cada nombre observe que se usa
un solo indice */
cout<<"\n";
cout<<”El primer nombre es ”<<nombre[0]<<”\n”;
cout<<”El segundo nombre es ”<<nombre[1]<<”\n”;
cout<<"\n";
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
/*Uso de funciones: comparacion de los dos nombres anteriores*/
if( ! strcmp(nombre[0],nombre[1]) )
cout<<”Los dos nombres anteriores son iguales \n”;
else
cout<<”Los dos nombres anteriores son diferentes \n”;
cout<<"\n";
system("PAUSE");
return 0;
}
Ingeniería Química
Descargar