You are on page 1of 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 asignacin 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]
Cadena 'h'
'o'
'l'
'a'
'\0'

[5]

[6]

[7]

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

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 podramos
definir los vectores con los siguientes tamaos:
char mes1[6]="enero";
char mes2[8]="febrero";
Como la cadena "enero" requiere 5 caracteres luego el tamao mnimo del vector debe ser 6.
Para ingresar cadenas de caracteres por teclado debemos emplear el mtodo getline del objeto cin (le pasamos
como parmetro la cadena a ingresar y el tamao 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 funcin strcmp:
int strcmp(cadena1,cadena2)
Retorna 0 si las dos cadenas son exactamente iguales, mayor a cero si cadena1 es mayor alfabticamente 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 alfabticamente" o "la segunda
cadena ingresada es mayor alfabticamente".

Programa:
#include<iostream>

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 alfabticamente";
}
}
cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :


CadenaComparacion

Retornar

You might also like