|
Ahora con nuevo dominio, para que tu acceso a la página sea mas fácil.
www.cmasmas.es.mn
-----------------------------------------------------------
CADENAS
Lectura
de cadenas.
C++ al igual que la mayoría de los lenguajes de programación
tienen funciones que permiten la entrada/salida de cadenas de caracteres por
pantalla/teclado.
La salida de caracteres en C++ se realiza, usando cout<<cadena.
En cuanto a la lectura de caracteres, se tiene varias
opciones:
1. cin.get();: Lee carácter a carácter.
Uso
del cin.getline.
2. Uso del método estándar de entrada, es decir, cin:
tiene dos problemas:
-La cadena es leída hasta que se encuentre ENTER, ESPACIO o
TABULADOR. Esto hace que se puedan perder datos, por ejemplo, si una
persona tiene dos nombres, al usar cin>>nombre, se estaría perdiendo el segundo
de ellos.
-Lo que no se ha leído, se queda almacenado en el buffer del
teclado, por que no queremos que se mezcle con las otras lecturas debemos
ignorarlo. Ese es el motivo de la sentencia cin.ignore(Número de
caracteres, carácter separador). Carácter separador ENTER.
3. Uso de cin.getline(): Permite leer una cadena
de caracteres hasta un número máximo de caracteres.
Sintaxis:
cin.getline(Nombre cadena, LongitudCadena, carácter
separador);
Explicación:
getline es una función que permite que cin lea
una línea completa incluyendo cualquier espacio en blanco. Adiciona
automáticamente el carácter nulo '\0' y el carácter final de línea '\n'
Ejemplo
con el carácter nulo de una cadena.
NombeCadena es el nombre de la cadena donde se
almacena la cadena ingresada por teclado.
LongitudCanena es la longitud máxima de la cadena
(debe definirla con dos espacios demás para que permita el carácter '\0' y
'\n').
-----------------------------------------------------------
Ejemplo de un
programa sobre cadenas.
#include<iostream.h>
#include<conio.h>
main()
{
clrscr();
char nombre[30];/*Define la cadena nombre de 30
caracteres.*/
cout<<"\n\tDIGITE NOMBRE Y APELLIDO: ";/*Mensaje.*/
cin.getline(nombre,30);/*Lee una cadena y la almacena en
nombre.*/
cout<<"\n\n\tLa cadena leída y almacenada es: "<<nombre<<endl;/*Muestra
la
cadena leída.*/
getch();
return 0;
}
Programa,
ejemplo sobre cadenas.
-----------------------------------------------------------
Funciones
para manejar cadenas.
Las librerías para trabajar con cadenas son: <string.h>, <ctype.h>
FUNCIONES DE LA LIBRERIA ESTANDAR PARA TRABAJAR CON
CADENAS:
Hay bastantes funciones para manejar cadenas, aquí se
expondrán algunas de las mas conocidas y frecuentes.
ASIGNACIÓN DE CADENAS
1. strcpy (cadenaDestino , CadenaFuente ):
copia el contenido de una cadenaFuente en cadenaDestino.
Ejemplo:
char letras = "abcdef \0"; //letras es una cadena que
contiene los caracteres asignados.
char cadena[10]; //cadena es una cadena de 10 caracteres.
strcpy(cadena,letras); //copia la cadena letras en la
cadena cadena.
CONCATENAR CADENAS
2. strcat(cadenaDestino,cadenFuente):
Concatenar cadenas, añade la cadenaFuente a la cadenaDestino.
Ejemplo:
char cadena="abcdefghi";
char masletr="jklmnop";
strcat(cadena,masletr); //se pega a cadena la
tira masletr, quedando así:
cadena=abcdefghijklmnop
3. strlen( ): Entrega el número de
caracteres de una cadena. Excluye el \0:
variable=strlen(string):
int longitud;
char animal="caballo \0";
longitud =strlen (animal);
Código
que muestra un ejemplo de como centrar una cadena de caracteres, utilizando la
función strlen.
4. strcmp( ): Compara el orden alfabético
de dos cadenas, sin tener en cuenta si se tienen mayúsculas y minúsculas:
Ejemplo:
int comp;
comp=strcmp(cadena1,cadena2);
Los dos argumentos son las tiras que se desean comparar y el
resultado es un número que es:
NEGATIVO si la cadena1 es < que la cadena2
ES CERO si las dos cadenas son iguales
ES POSITIVO si la cadena 1 es > que la cadena2, es decir va
después en el orden alfabético.
5. strchr( ): Para encontrar un carácter
en una cadena. El primer argumento es la tira de caracteres y el
segundo el carácter que se desea buscar en ella, el resultado es un puntero
que indica la primera ocurrencia del carácter en la tira.
char *ptr;
char cadena[20];
char c='j';
ptr=strchr (cadena,c);
6. atoi ( ): Convierte la tira de
caracteres en valor entero.
int prim;
char tira [2];
prim = atoi (tira);
7. itoa( ): Convierte un entero en
una cadena de caracteres:
Ejemplo:
itoa(num,tira,10): num es un número
entero, tira es la cadena de caracteres en la que se va a convertir el número, y
10 la base la base en la que se quiere mostrar el número vonvertido en la tira
de caracteres.
8. isdigit( ): Determina si el argumento
es un dígito (0-9).
9. islower( ): Determina si el argumento
es una letra minúscula (a-z).
10. isupper( ): Determina si le argumento
es una letra mayúscula (A-Z).
11. tolower( ): Convierte una letra
mayúscula a minúscula.
12. toupper( ): Convierte una letra minúscula a
mayúscula.
Uso
de toupper(), cinget().
Ir a inicio de página.
-----------------------------------------------------------
Aquí
se mostrará un ejemplo del "cin.getline", este programa pide que se
introduzca un texto y luego cuenta las a, e, i, o y u que hallan en el texto.
#include<conio.h>
#include<iostream.h>
#include<string.h>
void main()
{
int I,tama, conta,conte,conti,conto,contu;
char texto[100];/*El texto no puede tener mas de 100
caracteres.*/
clrscr();/*Borrado de pantalla.*/
textcolor(BLUE);textbackground(MAGENTA);clrscr();/*Colores
a texto y fondo
y borrado de pantalla.*/
cprintf("\n Entrar texto:");/*Este "cprintf" es lo mismo
que el "cout", solo
se coloca para que el compilador reciba la orden de colocar el color a el
texto, el "cout" no recibe esta orden.*/
cin.getline(texto,100);/*Si se coloca solo el "cin", al
momento de leer y
llevar a memoria el texto leído, solo se llevara a memoria lo que hay
antes del primer espacio, lo que quiere decir que el "cin" solo no puede leer
oraciones o párrafos, solo palabras.*/
conta=0,conte=0,conti=0,conto=0,contu=0;/*Se deben
inicializar los contadores en cero.*/
tama=strlen(texto);/*strlen devuelve el número de
caracteres que contiene la variable
texto*/
for(I=0; I<=(tama-1); I++)/*I-->Indice para revisar cada
una de los caracteres
del texto, el índice va desde la primera posición hasta n-1. (En la mayoría
de los casos los índices van desde cero hasta n-1).*/
{
if(texto[I]=='a')/*En cada uno de estos if, se identifica
si el carácter de
la posición del índice corresponde a una vocal, si es así, se incrementa un
contador, (un contador para cada vocal).*/
{
conta=conta+1;
}
if(texto[I]=='e')
{
conte=conte+1;
}
if(texto[I]=='i')
{
conti=conti+1;
}
if(texto[I]=='o')
{
conto=conto+1;
}
if(texto[I]=='u')
{
contu=contu+1;
}
}
cout<<endl<<endl<<"aes="<<conta;/*Con estos "cout" se
muestra la cantidad de cada vocal que aparecen el texto ingresado.*/
cout<<endl<<"ees="<<conte;
cout<<endl<<"ies="<<conti;/*Endl, pasa a siguiente
línea.*/
cout<<endl<<"oes="<<conto;
cout<<endl<<"ues="<<contu;
getch();/*Detiene ejecución del programa.*/
}
Programa que
muestra un ejemplo del "cin.getline", este programa pide que se introduzca un
texto y luego cuenta las a, e, i, o y u que hallan en el texto.
-----------------------------------------------------------
Programa que
devuelve la cadena ingresada, pero al contrario. Ejemplo: Si se
ingresó carolina, el programa devolverá anilorac
Programa
que determina si una palabra es palíndrome.
Uso
de toupper(), tolower(), strcpy(), strcmp().
contar
las consonantes vocales dígitos signos de puntuación mayúsculas minúsculas y
espacios de una frase.
Se
ingresa una cadena. Muestra su longitud. Muestra la cadena en forma
inversa. Muestra cada caracter dos veces.
Programa
que pide el ingreso de nombres (cadenas), luego se busca uno de los nombres
ingresados y se indica la posición en que se encuentra el nombre buscado.
Se pide un nombre, si
es igual al de la clave da autorización para entrar, sino, no da autorización.
-----------------------------------------------------------
Si encuentras algún error en las
temas aquí explicados, te rogamos el favor nos lo hagas saber.
-----------------------------------------------------------
Empresa amiga-->
Tecsicom®
|