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: 49

Visitas el mes pasado: 442

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.6. Caracteres

El tipo char

Logo C++ Basico

Página 2-6.

Hasta ahora los tipos de variables que hemos visto sirven para almacenar números, ahora veremos los tipos de variables que sirven para almacenar letras o grafías, es decir caracteres.

El principal tipo de variable para almacenar caracteres es el tipo char. Al igual que los demás tipos, para declarar una variable escribiremos el tipo seguido del nombre de la variable, por ejemplo:

char letra;

Y para inicializarla asignamos un valor a la variable. El valor debe de ser un caracter, el cual se escribirá siempre entre comillas simples, por ejemplo:

letra = 'a';

Como en el resto de variables también podemos declarar e inicializar la variable en la misma sentencia. Las dos lineas anteriores las podemos sustituir por esta:

char letra = 'a';

al igual que con el resto de variables, también se pueden inicializar varias variables en una misma sentencia:

char h='h', o='o', l='l', a='a';

Pongamos un ejemplo en el que escribimos el típico "hola mundo", pero con variables de caracteres, el programa quedará así:

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

int main() {
   char h='h',o='o',l='l',a='a',sp=' ',m='m',u='u',n='n',d='d';;
   cout <<h<<o<<l<<a<<sp<<m<<u<<n<<d<<o<< endl;
}

programa caracteres 1

Al compilar y ejecutar lo veremos como aquí a la derecha. Observa que lo que hemos sacado en pantalla son las variables, las cuales las hemos llamado igual que a los caracteres que almacenan.

Desde un punto de vista práctico, hubiera sido mucho más fácil escribir la frase "hola mundo" para sacarla en pantalla, pero aquí se trataba de enseñar cómo funcionan las variables de caracteres, por eso lo hemos hecho así.


El código ASCII.

En las variables numéricas, para expresar los números, lo que hace el ordenador es traducir los valores binarios (de ceros y unos), de los bytes a números, es decir transforma un número en base 2, compuesto por ceros y unos a un número en base 10.

Sin embargo para representar las letras y otros caracteres, lo que hace es utilizar las tablas ASCII.

Éstas son tablas que contienen todas las letras del alfabeto y además algunos otros caracteres adicionales. A cada letra o caracter le corresponde un número, de manera que se asocia cada caracter con su número, por ejemplo la letra A (mayúscula) siempre está asociada al número 65. De esta manera el ordenador reconoce las letras porque guarda en memoria su posición en el código ASCII.

La tabla ASCII estandar define 128 caracteres, de los cuales los primeros 32 son códigos de control, (caracteres no imprimibles) y los otros 96 caracteres restantes son los caracteres básicos que representan letras, números y otros signos habituales.

La siguiente tabla muestra los caracteres imprimibles de la tabla ASCII estándar y su número :

(32)
(33)
!
(34)
"
(35)
#
(36)
$
(37)
%
(38)
&
(39)
'
(40)
(
(41)
)
(42)
*
(43)
+
(44)
,
(45)
-
(46)
.
(47)
/
(48)
0
(49)
1
(50)
2
(51)
3
(52)
4
(53)
5
(54)
6
(55)
7
(56)
8
(57)
9
(58)
:
(59)
;
(60)
<
(61)
=
(62)
>
(63)
?
(64)
@
(65)
A
(66)
B
(67)
C
(68)
D
(69)
E
(70)
F
(71)
G
(72)
H
(73)
I
(74)
J
(75)
K
(76)
L
(77)
M
(78)
N
(79)
O
(80)
P
(81)
Q
(82)
R
(83)
S
(84)
T
(85)
U
(86)
V
(87)
W
(88)
X
(89)
Y
(90)
Z
(91)
[
(92)
\
(93)
]
(94)
^
(95)
_
(96)
`
(97)
a
(98)
b
(99)
c
(100)
d
(101)
e
(102)
f
(103)
g
(104)
h
(105)
i
(106)
j
(107)
k
(108)
l
(109)
m
(110)
n
(111)
o
(112)
p
(113)
q
(114)
r
(115)
s
(116)
t
(117)
u
(118)
v
(119)
w
(120)
x
(121)
y
(122)
z
(123)
{
(124)
|
(125)
}
(126)
~
(127)


Observa cómo el abecedario en mayúsculas está a partir del número 65, y en minúsculas a partir del 97. Los caracteres numéricos (del 48 al 57), son caracteres, y no números, por lo que no se puede operar con ellos.

El hecho de que la tabla ASCII básica tenga 128 caracteres no es casual, ya que 128 es igual a 27 (dos elevado a siete). Los ordenadores agrupan los bits en grupos de ocho llamados bytes, por lo que cada caracter ocupa 7 de los 8 bits que tiene un byte, dejando un bit libre.

Sin embargo esta tabla está pensada para el idioma inglés, que no tiene vocales con acentos, ni letra ñ, ni otras letras especiales. Es por eso que al añadir el octavo bit multiplicamos el espacio por dos y, obtenemos otros 128 caracteres.

Tabla ansi_oem

Estos 128 caracteres se conocen como el código ASCII extendido, y tiene dos versiones, La primera de ella, y que usan la mayoría de los compiladores al utilizar la consola de Windows (Salida en MS-DOS) es el juego de caratertes OEM. Tanto éste como el otro contienen la mayoría de símbolos que no aparecen en la tabla de ASCII básica. Vemos aquí a la derecha el juego de cracteres OEM.

La segunda opción aparece para los programas hechos en ventanas windows, y también en la programación para la web (php, javascript, etc.) es el juego de carcteres ANSI.

Tabla ascii_ansi

Este juego de caracteres es el que vemos aquí a la derecha.

Tanto uno como otro pueden tener ligeras variaciones, dependiendo del sistema operativo y del compilador que utilicemos.


Varios caracteres

Sin embargo las palabras están compuestas de varios caracteres. El tipo char tal como lo hemos visto hasta ahora sólo puede guardar un caracter, por lo que para escribir una palabra necesitamos tantas variables como caracteres tiene la palabra.

Pero esto lo podemos cambiar si usamos el tipo char como si fuese una lista del tipo array.

Aunque veremos las listas de tipo array más adelante, vamos a ver cómo utilizar un tipo char para guardar varios caracteres. Para ello después del nombre de la variable escribiremos un corchete. Dentro del corchete escribiremos un número que indicará el número de caracteres más uno que tendrá la palabra.

char uno[5]

A partir de aquí el tipo se comportará como una lista de variables. por lo que el siguiente paso es inicializar las variables que entran en la lista. Podemos hacerlo de dos maneras. La primera es inicializarlas al declarar la variable, para ello al declarar la variable, las escribiremos entre llaves y separadas por comas. Además la última variable de la lista debe ser un 0; de ahí que el número del corchete sea el número de caracteres más uno.

char uno[5]={'h','o','l','a',0}

llevamos esta variable a salida en pantalla.

cout << uno << endl;

El resultado es que veremos por pantalla la palabra "hola". El hecho de que haya que poner un cero (0) al final de la lista, es porque el espacio que se reserva en la memoria para la lista puede ser mayor al que realmente hace falta. El cero borra el contenido del resto de memoria que no se utiliza, que de otra forma se mostraría en pantalla.

Sólo cuando inicializamos así el tipo char, podemos también prescindir de poner dentro del corchete el número, de manera que éste se calcula por el número de elementos que le pasamos entre llaves. La sentencia anterior en la que declaramos la variable, la podríamos haber escrito también así:

char uno[]={'h','o','l','a',0}

Si no inicializamos la lista al declarar la variable, debemos incializar los elementos de la lista uno a uno, esto lo haremos escribiendo una sentencia para cada uno, en la cual indicamos la variable con su número de elemento entre corchetes, y le asignamos su valor, veamos cómo hacerlo.

char dos[6];

d[0]='m';d[1]='u';d[2]='n';d[3]='d';d[4]='o';d[5]=0;

tener en cuenta que los elementos se empiezan a contar por el 0, de manera que el primer elemento es el 0, el segundo es el 1, y así sucesivamente. Aquí tambien tenemos que añadir al final un elemento de cierre con valor 0.


Ejemplo con caracteres en listas

Veamos un ejemplo de programa en el que escribimos lo visto anteriormente. El programa con los ejemplos anteriores, quedaría así:

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

int main() {
   char uno[]={'h','o','l','a',0};
   cout << uno << endl;

   char dos[6];
   dos[0]='m';dos[1]='u';dos[2]='n';dos[3]='d';dos[4]='o';dos[5]=0;
   cout << dos << endl;
}

resultado programa  char

Vemos aquí a la derecha el resultado de compilar el programa anterior. Observa cómo aquí las palabras son listas o arrays. En la primera palabra la lista la hemos inicializado al declarar la variable, mientras que en la segunda, hemos inicializado los elementos uno a uno más tarde.

ç

En realidad al crear una lista de elementos char, cada uno de ellos es tratado como una variable tipo char, los cuales se pueden agrupar en una lista, que guardamos en otra variable.

Hasta aquí hemos visto los tipos básicos de variables, llamados también tipos primitivos, Como su nombre indica son los más básicos, y no pueden descomponerse en otros más pequeños, sin embargo si es posible, a partir de ellos formar tipos más complejos.

Por su importancia, en la siguiente página veremos el tipo string, en el que podemos guardar palabras y cadenas de texto. Éste es un tipo complejo, formado a partir de una sucesión de tipos char.






En la siguiente página veremos el tipo string, un tipo complejo con el que se pueden guardar cadenas de texto.

Cadenas de texto



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