Está en la página 1de 5

 

Facultad de Ingeniería 
Programa de Ingeniería de Sistemas 
Programación I 
USO DE LA LIBRERÍA STRING 
 

 
 
MATERIAL PARA ESTUDIO 
USOS DE LA LIBRERÍA STRING 

Contexto del caso: 
<string> es un  archivo de la Biblioteca estándar del lenguaje de programación C++ 
que contiene  la definición de objetos, métodos con sobrecarga de operadores para 
realizar  operaciones normales  de  asignación y comparación, funciones y tipos que 
me  permiten  algunas operaciones de  manipulación de memoria con los objetos de 
tipo string (cadenas) 

1. ESTRUCTURA DE DATOS:  
Un string es una cadena de elementos de tipo char, almacenados en un vector. 

Se definen: 
string nombre, direccion;

Se capturan y se imprimen: 
cout<<"Digite su nombre: ";
cin>>nombre; //para capturar dato y almacenar en nombre
cout<<nombre; //para mostrar en pantalla el dato almacenado en nombre
cout<<"Digite su direccion: ";
cin>>dirección;
cout<<direccion; 
 
 
Facultad de Ingeniería 
Programa de Ingeniería de Sistemas 
Programación I 
USO DE LA LIBRERÍA STRING 
 

2. INSTRUCCIONES: 
Las  siguientes  instrucciones  me  permiten  realizar  operaciones  de  igualdad  y 
relación. Primero defino tres cadenas, dos de ellas con dato predeterminado. 
string s1("feliz");
string s2(" cumpleanios");
string s3;

Con estas cadenas se pueden realizar las siguientes operaciones: 

Operación lógica / igualdad 
cout<<"s1 es \""<<s1<<"\"; s2 es \""<<s2<<"\"; s3 es \""<<s3<<"\n\n";
cout<<"\n\nEl resultado de comparar s2 y s1:"<<"\n s2 == s1 arroja ";
cout<<(s2 == s1 ? "Verdadero" : "Falso");

Operación lógica / desigualdad 
cout<<"\ns2 != s2 arroja "<<(s2 != s1 ? "Verdadero" : "Falso");
 
Operación lógica / mayor que / menor que / mayor o igual que / menor o igual que 
 
cout<<"\ns2 > s1 arroja "<<(s2 > s1 ? "Verdadero" : "Falso");
cout<<"\ns2 < s1 arroja "<<(s2 < s1 ? "Verdadero" : "Falso");
cout<<"\ns2 >= s1 arroja "<<(s2 >= s1 ? "Verdadero" : "Falso");
cout<<"\ns2 <= s1 arroja "<<(s2 <= s1 ? "Verdadero" : "Falso");
 

Recordar la operación asignación condicionada 
string s1("hola");
string s2(" mundo del ciberespacio");
string res;

res = (s2 <= s1 ? "Verdadero" : "Falso");

En este caso, s2 no es menor o igual a s1, luego a la variable res se le


asigna la cadena "Falso".

cout<<res;

Escribe "Falso".
 
 
Facultad de Ingeniería 
Programa de Ingeniería de Sistemas 
Programación I 
USO DE LA LIBRERÍA STRING 
 
La función empty (NULL)
cout<<"\n\nPrueba s3.empty() :\n";
if(s3.empty()) ​
//pregunta si s3 está vacio o NULL
{
cout<<"s3 es empty; asigna s1 a s3;\n";
s3 = s1; ​
//se asigna el contenido de una variable cadena a otra
cout<<"s3 es \""<<s3<<"\"";
}
 

El operador de concatenación += (sobrecargado)
cout<<"\n\ns1 += s2 arroja s1 = ";
s1 += s2;
cout<<s1;

cout<<"\n\ns1 += \" a ti\" arroja\n";


s1 += " a ti";
cout<<"s1 = "<<s1<<"\n\n";
 

La  función  substr:  devuelve  una  subcadena  de  la  cadena  que  lo  invoca formada 
por los caracteres que ocupan las posiciones entre 0 y 14 para este ejemplo. 
cout<<"La subcadena de s1 comienza en la posicion 0 para\n";
cout<<"14 caracteres, s1.substr(0, 14), es:\n";
cout<<s1.substr(0,14)<<"\n\n";
 

Devuelve los caracteres que están al final después de la posición 15. 
cout<<"La subcadena de s1 comienza en la \n";
cout<<"posicion 15, s1.substr(15), es:\n";
cout<<s1.substr(15)<<"\n\n";
 

Constructor de copia. 
string *ptrS4 = new string(s1);
cout<<"\n*ptrS4 = "<<*ptrS4<<"\n\n";
Genera  una  copia  a  partir de una cadena (para el ejemplo en un apuntador de tipo 
string,  el  apuntador  sobrecargado  con  *  devuelve  el  valor  de  la  variable  a  la que 
apunta. 
 
Facultad de Ingeniería 
Programa de Ingeniería de Sistemas 
Programación I 
USO DE LA LIBRERÍA STRING 
 
Código fuente (​
UsoLibString.cpp​
)
#include <iostream>
#include <string>
using namespace std;

int main()
{
string s1("feliz");
string s2(" cumpleanios");
string s3;

/*Prueba los operadores de igualdad y de relación sobrecargados*/

cout<<"s1 es \""<<s1<<"\"; s2 es \""<<s2<<"\"; s3 es \""<<s3<<"\n\n";


cout<<"\n\nEl resultado de comparar s2 y s1:"<<"\n s2 == s1 arroja ";
cout<<(s2 == s1 ? "Verdadero" : "Falso");
cout<<"\ns2 != s2 arroja "<<(s2 != s1 ? "Verdadero" : "Falso");
cout<<"\ns2 > s1 arroja "<<(s2 > s1 ? "Verdadero" : "Falso");
cout<<"\ns2 < s1 arroja "<<(s2 < s1 ? "Verdadero" : "Falso");
cout<<"\ns2 >= s1 arroja "<<(s2 >= s1 ? "Verdadero" : "Falso");
cout<<"\ns2 <= s1 arroja "<<(s2 <= s1 ? "Verdadero" : "Falso");

/*Prueba de la función de cadena empty*/

cout<<"\n\nPrueba s3.empty() :\n";


if(s3.empty())
{
cout<<"s3 es empty; asigna s1 a s3;\n";
s3 = s1;
cout<<"s3 es \""<<s3<<"\"";
}

/*Prueba del operador de concatenación sobrecargado*/

cout<<"\n\ns1 += s2 arroja s1 = ";


s1 += s2;
cout<<s1;

/*Prueba del operador de concatenación con una cadena sobrecargado*/

cout<<"\n\ns1 += \" a ti\" arroja\n";


s1 += " a ti";
cout<<"s1 = "<<s1<<"\n\n";

/*Verifica la función miembro substr*/


 
Facultad de Ingeniería 
Programa de Ingeniería de Sistemas 
Programación I 
USO DE LA LIBRERÍA STRING 
 

cout<<"La subcadena de s1 comienza en la posicion 0 para\n";


cout<<"14 caracteres, s1.substr(0, 14), es:\n";
cout<<s1.substr(0,14)<<"\n\n";

/*Verifica substr para la opcion "al-final-de-la-cadena"*/

cout<<"La subcadena de s1 comienza en la \n";


cout<<"posicion 15, s1.substr(15), es:\n";
cout<<s1.substr(15)<<"\n\n";

/*Prueba del constructor de copia*/

string *ptrS4 = new string(s1);


cout<<"\n*ptrS4 = "<<*ptrS4<<"\n\n";

/*Prueba del operador de asignación (=) con autoasignación*/

cout<<"asigna *ptrS4 a *ptrS4\n";


*ptrS4 = *ptrS4;
cout<<"*ptrS4 = "<<*ptrS4<<"\n";

/*Prueba del destructor*/

delete ptrS4;

/*Prueba del uso del operador de subíndices para crear un lvalue*/

s1[0] = 'F';
s1[6] = 'C';
cout<<"\ns1 despues s1[0] = 'F' and s1[6] = 'C' es: ";
cout<<s1<<"\n\n";

/*Verifica subíndices fuera de rango mediante una función miembro


de cadena "at"*/

cout<<"El intento para asignar 'n' a s1.at(30) arroja: \n";


s1.at(30) = 'n';

return 0;
}

También podría gustarte