Sie sind auf Seite 1von 8

Cadenas

Cadena: es un array de caracteres (char) terminado en un carcter nulo (\0)



Array de caracteres
A B C

Cadena de Caracteres
A B C \0

Las cadenas se declaran como los arrays. Se inician con comillas.

char texto[5] = ABC; //contiene cadenas de 4 caracteres como mximo


1 Lectura y escritura de cadenas desde consola

leer cin >> nombre del array que recibe la cadena cin >> texto;
Escribir cout << nombre del array que contiene la cadena cout << texto;

Introduccin:
Vamos a ver por fin cmo manejar TEXTO en C++, ya que hasta el
momento solo lo hemos mostrado por pantalla mediante la sentencia
cout y el operador de insercin <<.
C++ no tiene como otros lenguajes de programacin, un tipo de datos
bsico para almacenar texto, como puede ser el tipo string.
C++ utilizar ARRAYS DE CARACTERES para almacenar texto.
void main()
{

cout << Esto es una cadena de texto;
}3
INTRODUCCIN AL TIPO COMPUESTO CADENA
Cadenas de Texto: Definicin
Una cadena de texto es una secuencia de caracteres. Ejemplos de
cadenas son:
Don Quijote de la Mancha
Hola Mundo
Apolo 13
En C++ una cadena se considera como un array de caracteres terminado
con el carcter nulo \0.
A p o l o 1 3 \0


Cadenas de caracteres[editar]
En C, C++ las cadenas de caracteres no son ms que arrays de caracteres, salvo que a este
tipo de arrays el compilador les da un tratamiento especial. Usted puede manipular las
cadenas de caracteres de la misma manera en que manipula cualquier otro tipo de array, sin
embargo, es preferible hacer uso de una librera estndar especialmente escrita para
manipulacion de cadenas de caracteres, me refiero a la librera <string.h> y que viene
incluida con todo compilador de C, C++.
Para comenzar y antes de ver algunas de las funciones de la mencionada librera, tenemos los
siguientes ejemplos:
1. char nombre[] = "Oscar";
2. char nombre2[] = { 'O', 's', 'c', 'a', 'r', '\0' };
En el ejemplo 1 se est declarando la variable nombre como una cadena de caracteres y
cuyo contenido inicial es "Oscar".
En el ejemplo 2 se est declarando la variable nombre2 como una cadena de caracteres
y cuyo contenido inicial es { 'O', 's', 'c', 'a', 'r', '\0' };.
En ambos casos el resultado es el mismo, es decir, al final se obtiene la misma cadena, pero
usted debe poner atencin al hecho de que toda cadena de caracteres en C, C++ debe
terminar con el carcter NULL, que normalmente es igual a cero y se puede escribir como '\0'.
Ahora bien, cuando usted usa la sintaxis mostrada en el ejemplo 1 no tiene que preocuparse
por agregar el caracter NULL, ya que esto lo hace el compilador automticamente.

Los arrays son usados extensamente por los programadores para contener listas de datos en
la memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro
de un array con el objetivo de facilitar la manipulacin de dichos datos, ya que los datos en
memoria pueden ser modificados, clasificados, marcados para su eliminacion, etc. para luego
ser reescritos al disco. Otro ejemplo podra ser el de un men de opciones que se desplegarn
dentro de una ventana para que el usuario pueda elegir una de stas, en tales casos y cuando
las opciones son numerosas, solamente se ponen unas cuantas de ellas dentro de la ventana
pero se le da al usuario la oportunidad de poder subir y bajar a su antojo para ver el resto de
opciones que, aunque no se vean en la ventana, forman parte del men o array de opciones.
Array:
Un array es un conjunto de datos del mismo tipo ordenados en forman lneal uno despus de
otro. Los componentes de un array se han de referenciar por medio del nombre del array y un
ndice de desplazamiento para indicar el componente deseado.
Cadenas de Texto: Declaracin
Las cadenas de texto se declaran como se declaraban los arrays de
caracteres, indicando el tamao mximo de la cadena + 1.
char <nombre_de_cadena> [ tamao_mximo +1 ]; Sintaxis
char cabecera[10];
char nombre[8];
Ejemplos:
La variable cabecera puede contener una
cadena de texto de tamao mximo 9
o un array de 10 posiciones.
Se declaran de la misma manera, por tanto
la diferencia radica en el uso que se le de a la variable

Cadenas de Texto: Escritura de cadenas
Para escribir el contenido de una variable de tipo cadena en consola,
utilizamos la sentencia de escritura cout con el operador de insercin <<.
cout escribe todos los caracteres
desde la posicin 0 en adelante, hasta
que se encuentre el carcter nulo \0
char cad_uno[20] = Hola Mundo;
char nombre[4] = Luis;

cout << cad_uno;
cout << nombre;
cad_uno = H o l a M undo \0
L u i s 6 9 g r t \0 v
nombre
=
En consola aparece: Hola Mundo

La asignacin directa slo est permitida cuando se hace junto con la declaracin.
El siguiente ejemplo producir un error en el compilador, ya que una cadena definida
de este modo se considera una constante, como veremos en el captulo de "arrays" o
arreglos.
char Saludo[5];
Saludo = "HOLA"
La manera correcta de asignar una cadena es:
char Saludo[5];
Saludo[0] = 'H';
Saludo[1] = 'O';
Saludo[2] = 'L';
Saludo[3] = 'A';
Saludo[4] = 0;
O bien:
char Saludo[5] = "HOLA";

pues un char colo almacena un caracter.


CDIGO: SELECCIONAR TODO
char letra='H';


si quieres almacenar una palabra, por ejemplo de 4 caracteres, el "char" donde lo guardars tiene
que ser de 5.


CDIGO: SELECCIONAR TODO
char palabra[5];


si quieres asignarle el valor a palabra, tienes tres formas


CDIGO: SELECCIONAR TODO
palabra = {'h','o','l','a','\0'};



CDIGO: SELECCIONAR TODO
palabra[0]='h';
palabra[0]='o';
palabra[0]='l';
palabra[0]='a';
palabra[0]='\0';


la otra manera es con una funcin que est en la librera string.h

CDIGO: SELECCIONAR TODO
strcpy(palabra,"hola");

Operacin con cadena de caracteres[editar]
Siguiendo en el mbito de la informtica, al considerar las cadenas como un tipo de datos, hay que
definir (o conocer) cuales son las operaciones que podemos hacer con ellas, en principio stas
podran ser muchas y llegar a ser muy sofisticadas, aqu se exponen algunas de ellas:
Asignacin: Consiste en asignarle una cadena a otra
Representacin[editar]
Una cadena suele ser representada entre comillas dobles superiores ("palabra"), mientras
que un carcter de esa cadena (un char en ingls) suele ser representado entre comillas
simples ('p'). Por ejemplo, en C:
charAt c = 'a';
char str[5] = "hola";
Generalmente para acceder a un carcter en una posicin determinada se suele usar la
forma variable[posicin] como cuando se accede a un vector.
Para poder mostrar una comilla (") dentro de la cadena y no tener problemas con las
comillas que la delimitan, se usan secuencias de escape. Esto se aplica a otros caracteres
reservados o no imprimibles como el retorno de carro. No obstante, las expresiones para
producir estas secuencias de escape dependen del lenguaje de programacin que se est
usando. Una forma comn, en muchos lenguajes, de escapar un carcter es
anteponindole un \ (sin comillas), p. e.: \" (sin comillas).
Ejemplos de algunas operaciones comunes[editar]
Asignacin: asignarle una cadena a otra
char *strcpy(char [], const char[]); # en C
cadena1=cadena2; # en C++
cadena1 := cadena2 # en Smalltalk

Operadores de asignacin
C++ dispone de los siguientes operadores de asingacin:

Sintaxis:
Ejemplo: x = 3;
x += 3;
x &= 3;
Todos ellos son operadores binarios, de los cuales,b>= es el nico de asignacin simple, los dems
son operadores de asignacin compuestos
Los seis primeros aceptan operandos de distinto tipo, mientras que los cinco ltimos: =, &=, ^= y |=, implican
manejo de bits por lo que sus operandos deben ser tipos int en sus distintas variantes. No olvidar que las
expresiones de asignacin producen un resultado. El tipo resultante es el de la (izquierda); el valor que se
aplica es el determinado por el Rvalue El valor resultante de despus de la asignacin, es el resultado de la
expresin (el Lvalue). As pues, cualquiera que sea su sentido concreto, todos implican la "copia" de un
bloque de memoria (que contiene el "resultado") en algn sitio (la direccin indicada por el Rvalue).


Leer ms: http://www.monografias.com/trabajos83/operadores-c/operadores-c.shtml#ixzz2xgEtvwXm

Ejemplo:
int num; float f = 3.14;
num = f + 1;
En este caso, el valor 4.14, resultado de <expr-derecha>, se aplica a num. Teniendo en cuenta
que el tipo resultante debe ser el de num (un int en este caso), se realiza automticamente una
conversin del float 4.14 a int (con prdida de precisin si es necesario), con el resultado de
que num recibe el valor 4 y el resultado de la asignacin es un int de valor 4.

3.2 Esta propiedad de las asignaciones de producir un resultado, es justamente la que permite
expresiones de asignacin compuesta del tipo:
A = B = C = D;
y es ampliamente utilizada en la programacin de C++. Considere el bucle del siguiente ejemplo:
while ( (ch = getchar() ) != 27 ) ;
aprovechando que en este caso, el resultado de la asignacin es un char, se utiliza directamente
en la clusula del while, resultando que el bucle se ejecuta indefinidamente hasta que se pulse la
tecla ESC (escape).

3.3 En general las sentencias de asignacin tienen la forma:
variable = expresion
La parte izquierda (que tiene que ser un Lvalue no constante) adquiere el valor sealado en la
expresin de la derecha, pero se mantiene el tipo original de la variable de la parte izquierda. En
caso necesario se realiza una conversin de tipo (con prdida de precisin en su caso) del
izquierdo al derecho.
Nota: observe que el operador C++ de asignacin simple (=) se distingue de otros lenguajes
como Pascal que utilizan el smbolo := para este operador. Observe tambin que la asignacin
simple (=) utiliza un smbolo distinto del operador relacional de igualdad (==).

4 Las variables se pueden inicializar en el mismo momento de la declaracin (asignndoles un
valor). Este es el nico caso en que se puede asignar una constante [2]. Ejemplo:
int primero = 0;
char ch = a;
float balance = 123.456;
char string[10] = "1234567890";
const float pi = 3.14159 ;

5 En la expresin E1 = E2, E1 debe ser un Lvalue modificable, en caso contrario puede
obtenerse un mensaje de error: Lvalue required [1]. Por ejemplo, una vez declarado char
a[10], ninguna de las dos sentencias que siguen es vlida:
a = "0123456789";
a[10] = "0123456789";

Das könnte Ihnen auch gefallen