View
221
Download
0
Embed Size (px)
Citation preview
7/25/2019 12 - Cadena de Caracteres Mediante Vectores
http://slidepdf.com/reader/full/12-cadena-de-caracteres-mediante-vectores 1/3
tutorialesya.com.ar http://www.tutorialesya.com.ar/cmasmasya/detalleconcepto.php?punto=12&codigo=139&inicio=0
12 - Cadena de caracteres mediante vectores
Un string es una serie de caracteres seguidos almacenados en la memoria RAM. Veremos la forma de
administrar string en C++ heredados del lenguaje C (esta forma de administrar string es ampliamente utilizada)
Una cadena o string de caracteres es un vector con componentes de tipo char.
Se define de la siguiente manera:
char <Nombre> [<Cantidad de caracteres>];
Ejemplo:
char cadena[8];
La variable cadena puede almacenar hasta 7 caracteres (lo definimos de 8 ya que requiere un caracter para
indicar el fin)
No existe operador de asignación para cadenas.
Podemos definir y almacenar inmediatamente la cadena:
char cadena [8]="hola";
Al definir la cantidad de componentes que tendrá el vector, debemos tener en cuenta que necesitamos un
elemento para guardar el terminador de cadena. El terminador de cadena (‘\0’) marca el fin del vector de
caracteres.
El contenido de cada componente del vector es el siguiente:
componente [0] [1] [2] [3] [4] [5] [6] [7]
Cadena 'h' 'o' 'l' 'a' '\0'
Problema 1:
Confeccionar un programa que defina dos vectores de caracteres con los nombres de meses de "enero" y
"febrero". Mostrar luego por pantalla los dos vectores
Programa:
#include<iostream>
using namespace std;
void main()
{
char mes1[20]="enero";
char mes2[20]="febrero";
cout <<mes1;
cout <<"\n"; cout <<mes2;
cin.get();
}
7/25/2019 12 - Cadena de Caracteres Mediante Vectores
http://slidepdf.com/reader/full/12-cadena-de-caracteres-mediante-vectores 2/3
Este proyecto lo puede descargar en un zip desde este enlace : CadenaInicializar
Hemos definido los dos vectores de 20 caracteres, si queremos hacer un uso óptimo de la memoria podríamos
definir los vectores con los siguientes tamaños:
char mes1[6]="enero";
char mes2[8]="febrero";
Como la cadena "enero" requiere 5 caracteres luego el tamaño mínimo del vector debe ser 6.
Para ingresar cadenas de caracteres por teclado debemos emplear el método getline del objeto cin (le pasamos
como parámetro la cadena a ingresar y el tamaño de la cadena):
cin.getline(cadena,40);
Problema 2:
Confeccionar un programa que defina una cadena de caracteres para almacenar el nombre y apellido de una
persona. La carga del dato hacerla por teclado.
Programa:
#include <iostream>
using namespace std;
void main()
{
char nombre[40];
cout <<"Ingrese su nombre:"; cin.getline(nombre,40);
cout <<"El nombre ingresado es:";
cout <<nombre;
cin.get();
}
Este proyecto lo puede descargar en un zip desde este enlace : CadenaCargaTeclado
Para comparar dos cadenas si son iguales no podemos utilizar el operador == como se utiliza en los tipos de
datos enteros vistos anteriormente. Para comparar cadenas debemos emplear la función strcmp:
int strcmp(cadena1,cadena2)
Retorna 0 si las dos cadenas son exactamente iguales, mayor a cero si cadena1 es mayor alfabéticamente que
cadena2 y menor a cero en caso contrario.
Problema 3:
Confeccionar un programa que permita ingresar dos cadenas de caracteres por teclado y luego mostrar un
mensaje indicando si: "son iguales", "la primer cadena ingresada es mayor alfabéticamente" o "la segunda
cadena ingresada es mayor alfabéticamente".
Programa:
#include<iostream>
7/25/2019 12 - Cadena de Caracteres Mediante Vectores
http://slidepdf.com/reader/full/12-cadena-de-caracteres-mediante-vectores 3/3
using namespace std;
void main()
{
char cadena1[50];
char cadena2[50];
cout <<"Ingrese la primer cadena:";
cin.getline(cadena1,50);
cout <<"Ingrese la segunda cadena:";
cin.getline(cadena2,50);
if (strcmp(cadena1,cadena2)==0)
{
cout <<"son iguales";
}
else
{
if (strcmp(cadena1,cadena2)>0)
{
cout <<"la primer cadena ingresada es mayor alfabeticamente";
}
else
{
cout <<"la segunda cadena ingresada es mayor alfabéticamente";
}
}
cin.get();
}
Este proyecto lo puede descargar en un zip desde este enlace :
CadenaComparacion
Retornar