1.1.3 Constantes carácter / cadena

 

Las constantes de cadena, también llamadas cadenas literales o alfanuméricas ("String literals"), son utilizadas para albergar secuencias de caracteres alfanuméricos, y forman una categoría especial dentro de las constantes, aunque también pueden ser consideradas un caso especial de matrices de caracteres.  Se representan en el fuente como una secuencia de caracteres entre comillas dobles (“):

 

"Esto es una cadena literal!"

"Esto es una cadena de caracteres anchos"

Vistas con cierta perspectiva, las cadenas literales aparecen como un tipo algo extraño, que en cierta forma desentona del resto de entidades del universo C++ y que no deberían tener cabida en él. En realidad hay algo de esto; representan una herencia de su antecesor C, en el que se utilizan estas "extrañas" construcciones para almacenar texto alfanumérico en el que su punto final se identifica mediante el carácter nulo.

El texto de una cadena literal puede contener cualquier carácter del juego de caracteres imprimibles ASCII.

Para representar los caracteres no imprimibles se utilizan las denominadas secuencias de escape; un truco que consiste en sustituir cada carácter no imprimible por una secuencia de dos o tres caracteres. Naturalmente, una cadena literal no debe contener un carácter nulo en su interior (que como hemos indicado señala el final de la cadena); en caso contrario, al aplicarse las funciones de Librería Estándar clásicas (heredadas de C) el resultado es impredecible.

1.1 El punto importante a entender aquí podría sintetizarse en que, desde la óptica C++, las cadenas literales:

·         Representan valores (datos) constantes.

·         Para el compilador son en realidad matrices de caracteres constantes, aunque les permite una sintaxis algo especial en atención a que el antiguo código C sea compatible con los compiladores C++.

·         Si la cadena no está precedida por la letra L, es una matriz de caracteres tipo const char, también denominada cadena estrecha u ordinaria ("Narrow string literal").

·         Si la cadena está precedida por la letra L, los miembros de la matriz son caracteres anchos del tipo const w_char, y se denomina cadena ancha ("Wide string literal").

·         Estos objetos tienen almacenamiento estático en el sentido indicado en es decir, que el compilador conoce los valores en tiempo de compilación, y que probablemente sean guardados en el segmento.

 

Para tal tipo de constantes, estás se encontrarán formadas por un único carácter que se encontrará encerrado entre un par de comillas simples. 2Una secuencia de escape se considerada como un único carácter.

 

Ejemplos:

 

‘ ‘                     espacio en blanco

‘x’                    letra minúscula x

‘\ n’                  nueva línea

‘\x1B’              carácter ASCII Esc

 

 

Las constantes carácter son aquellas que constan de un solo carácter el cual se encierra entre comillas simples.

 

Las constantes de cadena de caracteres constan de cualquier numero de caracteres consecutivos los cuales se encierran entre comillas dobles.

 

3

 
Carácter: valla la redundancia son todos los tipos de signos que se encuentran dentro de la palabra carácter,    Los cuales son encerrados entre comillas simples o apostrofes. Dentro de estas a su vez se encuentran las:

Constantes cadena

Una constante de cadena se escribe entre comillas ("..."). Estos son ejemplos de una constante de cadena:

"mi nombre es Jesús"

"no hay clases"

"arlequín

Una constante de carácter es un solo carácter, encerrado con comillas simples. Una constante de tipo carácter almacena el valor entero que representa el carácter indicado según el código de representación utilizado. Esto permite escribir programas en C que no dependan del código utilizado por la maquina.

 

Ejemplo: Son constantes de tipo carácter 'A', 'X', '3' o '/'

Algunos caracteres no pueden representarse de esa manera, y por eso necesitan utilizar un mecanismo alternativo. Estos caracteres se representan mediante secuencias de escape:

 

Códigos especiales de dos caracteres, el primero de los cuales siempre es la barra invertida:

(\). Algunas de estas secuencias de escape son:

'\'' representa el carácter comilla simple.

'\\' representa el carácter barra invertida.

'\"' representa el carácter comilla doble (aunque también valdría '"').

'\?' representa el carácter cierre de interrogación (también vale '?').

'\t' representa el carácter tabulador horizontal.

'\n' representa el carácter nueva línea.

'\r' representa el carácter retorno de carro.

 

No obstante, la utilización de valores octales o hexadecimales para representar caracteres presupone el conocimiento del código utilizado, y limita la utilización del programa realizado a maquinas que utilicen dicho código. Por eso se desaconseja la utilización de este mecanismo para la especificación de constantes de carácter.

Cadenas de caracteres

Una cadena de caracteres es una secuencia de cero o mas caracteres encerrados entre

Comillas dobles. Las comillas dobles no forman parte de la cadena, solo sirven para delimitarla.

 

Ejemplo: Son constantes de cadena:

"cadena de caracteres"

"Fundamentos de  la programación \n"

"El carácter barra invertida es \\"

"Las comillas dobles hay que escaparlas: \""

 

La representación interna de una cadena tiene un carácter nulo ('\0') al final, de modo

Que el almacenamiento físico es uno más del número de caracteres escritos en la cadena.

 

Es importante destacar que no son equivalentes 'D' y "D". En el primer caso estamos representando el carácter d mayúscula, mientras que en el segundo caso estamos representando una cadena de caracteres de un solo carácter (el carácter d mayúscula).

 

Un carácter tiene un valor entero equivalente, mientras que una cadena de un solo carácter no tiene un valor entero equivalente y de hecho consta de dos caracteres, que son el carácter especificado y el carácter nulo ('\0').