Entendido.

Este sitio utiliza cookies para analizar la navegación.Si continúa navegando se entiende que acepta su uso. Ver más detalles.

Logo

Aprende Web C++

Aprende a programar en C++ con Aprende-Web

Nociones Básicas

programación en C++ desde cero.


Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net



Sobre ésta página

Ültima modificación: 13-07-2018.

Visitas este mes: 89

Visitas el mes pasado: 710

logo
WEB-GRAFÍA

Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:

cplusplus.com
Sitio oficial de C++: Informacion, Referencias, Tutorial, Foro. (En inglés)
Minidosis.org
Curso de C++ con videos y lecturas.
conclase.net
Curso de C++
programar ya
Curso de C++ desde cero
cprogramming.com
C++ Tutorial (inglés).
Entorno de desarrollo integrado
fergarciac.wordpress.com
Compiladores, intérpretes y Máquinas virtuales.
latecladeescape.com
el hacker.net
Programación
Desarrollo web
Manual de iniciación a la programación.

En los distintos manuales incluimosm más webgrafía especifica de cada sección.


Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.





2. Instrucciones básicas

2.7. Cadenas de texto

El tipo string

Logo C++ Basico

Los tipos de variables vistos hasta ahora son tipos primitivos o básicos. A partir de estos se pueden formar los tipos derivados. Uno de ellos es el tipo string, que se forma mediante la union de varios tipos char.

Dentro de los tipos derivados, es con mucho el más usado, ya que sirve para guardar cadenas de texto.

En principio el tipo string requiere que tengamos abierta la librería string, es decir, que al principio del programa, despues de la línea de #include<iostream>, debemos poner otra línea que diga #include<cstring>. el comienzo del archivo fuente quedará así:

#include<iostream>

#include<cstring>

using namespace std;

Sin embargo en los IDEs modernos, la librería iostream incluye también a la librería cstring, por lo que en realidad la segunda línea es opcional.

En todo caso si viéramos que al añadir variables de tipo string el programa no compila bien, entonces, deberíamos añadir esta segunda línea obligatoriamente.

Declarar strings

Una variable tipo string o cadena de texto se declara igual que cualquier otra variable:

string nombre="Ramon";

string apellido1="Garcia",apellido2;

En estos ejemplos declaramos varias variables string. Al igual que con el resto de variables, podemos inicializarlas o no al declararlas, y también podemos declarar una o varias variables en una sola sentencia.

Las cadenas de texto o strings se escriben siempre entre comillas dobles, distinguiendose así de los datos de tipo "char" o caracter, que se escriben siempre entre comillas simples. veamos este ejemplo:

cout << 'a' << endl;

cout << "a" << endl;

aparentemente los dos elementos son iguales, sin embargo esto no es así, ya que el primero es un carácter y el segundo es una cadena. Esto lo veremos más claro si en lugar de un sólo caracter escribimos varios:

cout << 'hola' << endl;

cout << "hola" << endl;

Ahora sólo tenemos un resultado correcto en la segunda línea, mientras que en la primera devuelve un número aleatorio, que depende del contenido que hubiera anteriormente en el espacio de memoria que ocupa el dato char.


Salida de strings

Para sacar un string en pantalla, lo haremos como con cualquier otro dato. Podemos sacar el string de forma literal, o sacarlo mediante una variable. En el siguiente programa damos salida tanto a strings literales como en variables:

1 2 3 4 5 6 7 8
#include<iostream>
using namespace std;

int main() {
   string nombre="Pedro", apellido="Sanchez";
   cout << "Hola, " << nombre << " " << apellido << endl;
   cout << "Que tal estas?" << endl;
}

salida strings

El programa anterior, al compilarlo, muestra en pantalla lo que vemos aquí a la derecha. Observa cómo los espacios en blanco cuentan también como caracteres, y hay que ponerlos en el string para que salgan en pantalla.


Entrada de strings

Una de las tareas más habituales es pedirle un dato al usuario para guardarlo en una variable, y en muchos casos, esta variable será un string. En principio, lo haremos mediante el uso de cin >> , como para cualquier otro tipo de dato:

string nombre;

cin >> nombre;

cout << "Hola " << nombre << endl;

Este es un sencillo programa en el que escribimos un nombre y luego lo devuelve en pantalla. Mientras lo que escribamos conste de una sola palabra el programa funcionará perfectamente, pero si escribimos más de una palabra el string sólo guardará la primera. Por ejemplo, si escrbimos como nombre "Juan", nos devolvera "Hola juan", pero si escribimos como nombre "Juan Carlos", nos devolverá también "Hola Juan", con lo que no habra guardado la segunda palabra de nuestro nombre.

Esto sucede porque la entrada de datos en pantalla considera que cada dato está separado del siguiente por un espacio en blanco (caracter espacio); con lo cual cada vez que en la entrada de datos hay un espacio se termina de leer el dato, considerando lo que se escribe después del espacio como un nuevo dato.

Si queremos por tanto poner un string que contenga espacios en blanco, debemos por lo tanto utilizar otro mecanismo. esta es la función getline.

Esta es una función predefinida que provoca una entrada de datos de tipo string, y que hace que todo lo que se escriba mientras no se pulse el "enter" forme parte del mismo string, aunque haya espacios de por medio.

Entraremos más adelante en lo que son las funciones preefinidas, de momento lo que hay que saber es cómo funciona el getline, y eso lo vamos a ver en el siguiente ejemplo:

string nombre;

getline(cin, nombre);

cout << "Hola " << nombre << endl;

El uso de getline es muy simple, tal como lo vemos aquí en la segunda línea. En primer lugar escribimos la palabra getline y luego escribimos un paréntesis dentro del cual escribiremos dos elementos separados por una coma. El primero de ellos es el canal de entrada. Si queremos recoger el dato en pantalla, escribiremos siempre cin, y el segundo será la variable de tipo string en la cual queramos guardar la cadena.

Como ves, no hay que escribir nada más, simplemente acabar la sentencia con punto y coma.

Algunas caracteristicas de las cadenas

Las cadenas son un tipo de datos complejo, esto es formado a partir de otros tipos de datos, de hecho los strings constituyen una "Clase". (más adelante estudiaremos las clases), esto hace que pueda tener una serie de funciones y métodos predefinidos.

Las funciones y métodos son una serie de elementos, que hacen que se pueda trabajar con los strings de una forma especial. Uno de ellos es el getline que ya hemos visto.

Otro de ellos es el .size(). Este elemento, añadido a una variable de tipo string, devuelve un número entero que indica la longitud de la cadena de texto en caracteres. Por ejemplo:

1 2 3 4 5 6 7 8 9 10 11
#include<iostream>
using namespace std;

int main() {
   cout << "Escribe tu nombre : ";
   string nombre;
   getline(cin, nombre);
   cout << "Hola " << nombre << endl;
   int num = nombre.size();
   cout << "Tu nombre tiene " << num << " caracteres" << endl;
}

programa string2

Al compilar y ejecutar este programa, lo primero que hace es pedirnos un nombre, una vez que se lo damos nos saluda y nos dice el número de caracteres que hemos escrito.

Existen muchos más métodos y funciones que se pueden aplicar sobre los strings, sin embargo veremos eso más adelante.

De momento hemos visto lo imprescindible para poder trabajar y manejar llas cadenas de texto.

Ejemplo con variables

Vamos a poner un ejemplo de programa, que bien podría ser un formulario en el que pedimos los datos del usuario. Veamos el programa:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include<iostream>
using namespace std;

int main() {
    cout << "ESCRIBE TUS DATOS : " << endl;
    string nombre, apellido1, apellido2, email, direccion, poblacion;
    int edad; long long telefono;
    cout << "Nombre : "; getline(cin, nombre);
    cout << "Primer Apellido : "; getline(cin, apellido1);
    cout << "Segundo Apellido : "; getline(cin, apellido2);
    cout << "Direccion : " ; getline(cin, direccion);
    cout << "Poblacion : " ; getline(cin, poblacion);
    cout << "e-mail : "; cin >> email;
    cout << "Edad : "; cin >> edad;
    cout << "Telefono : " ; cin >> telefono;
    cout << endl <<  "TUS DATOS" << endl;
    cout << "Nombre : " << nombre <<endl;
    cout << "Apellidos : " << apellido1 << " " << apellido2 << endl;
    cout << "E-mail : " << email << endl;
    cout << "Edad : " << edad << endl;
    cout << "Telefono : " << telefono <<endl;
    cout << "Domicilio : " << direccion << " " << poblacion << endl;
}

Recogida de datos

Este programa le pide al usuario una serie de datos, los cuales los va guardando en unas variables, cuando los tiene todos se los muestra en pantalla al usuario.

Vemos aquí a la derecha el aspecto qeu tiene el programa después compilarlo, ejecutarlo y de que el usuario responda a todas las preguntas.

Más sobre strings

Tal vez nos hayamos quedado con muchas dudas acerca de los strings o cadenas de texto. no obstante veremos su manejo y funcionamiento más adelante.






En la siguiente página veremos las relaciones entre los distintos tipos de variables, y que es lo que pasa cuando a una variable de un tipo se le asgigna un dato que corresponde a otro tipo

Conversión de tipos



Manual Básico de C++

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com