3.3. Tipo de datos carácter
Curso: Programación en C# (2015), por Nacho Cabanes
3.3. Tipo de datos carácter
3.3.1. Leer y mostrar caracteres
Como ya vimos brevemente, en C# también tenemos un tipo de datos que nos permite almacenar una única letra, el tipo "char":
char letra;
Asignar valores es sencillo: el valor se indica entre comillas simples
letra = 'a';
Para leer valores desde teclado, lo podemos hacer de forma similar a los casos anteriores: leemos toda una frase (que debería tener sólo una letra) con ReadLine y convertimos a tipo "char" usando Convert.ToChar:
letra = Convert.ToChar(Console.ReadLine());
Así, un programa que de un valor inicial a una letra, la muestre, lea una nueva letra tecleada por el usuario, y la muestre, podría ser:
// Ejemplo_03_03_01a.cs // Tipo de datos "char" // Introducción a C#, por Nacho Cabanes using System; public class Ejemplo_03_03_01a { public static void Main() { char letra; letra = 'a'; Console.WriteLine("La letra es {0}", letra); Console.WriteLine("Introduce una nueva letra"); letra = Convert.ToChar(Console.ReadLine()); Console.WriteLine("Ahora la letra es {0}", letra); } }
Ejercicios propuestos:
Ejercicio propuesto 3.3.1.1: Crea un programa que pida una letra al usuario y diga si se trata de una vocal.
Ejercicio propuesto 3.3.1.2: Crea un programa que muestre una de cada dos letras entre la que teclee el usuario y la "z". Por ejemplo, si el usuario introduce una "a", se escribirá "aceg...".
Ejercicio propuesto 3.3.1.3: Crea un programa que pida al usuario el ancho (por ejemplo, 4) y el alto (por ejemplo, 3) y una letra (por ejemplo, X) y escriba un rectángulo formado por esa cantidad de letras:
XXXX
XXXX
XXXX
3.3.2. Secuencias de escape: \n y otras
Como hemos visto, los textos que aparecen en pantalla se escriben con WriteLine, indicados entre paréntesis y entre comillas dobles. Entonces surge una dificultad: ¿cómo escribimos una comilla doble en pantalla? La forma de conseguirlo es usando ciertos caracteres especiales, lo que se conoce como "secuencias de escape". Existen ciertos caracteres especiales que se pueden escribir después de una barra invertida (\) y que nos permiten conseguir escribir esas comillas dobles y algún otro carácter poco habitual. Por ejemplo, con \" se escribirán unas comillas dobles, con \' unas comillas simples, con \\ se escribe una barra invertida y con \n se avanzará a la línea siguiente de pantalla (es preferible evitar este último, porque puede no funcionar correctamente en todos los sistemas operativos; más adelante veremos una alternativa más segura).
Estas secuencias especiales son las siguientes:
Secuencia Significado \a Emite un pitido \b Retroceso (permite borrar el último carácter) \f Avance de página (expulsa una hoja en la impresora) \n Avanza de línea (salta a la línea siguiente) \r Retorno de carro (va al principio de la línea) \t Salto de tabulación horizontal \v Salto de tabulación vertical \' Muestra una comilla simple \" Muestra una comilla doble \\ Muestra una barra invertida \0 Carácter nulo (NULL)
Vamos a ver un ejemplo que use los más habituales:
// Ejemplo_03_03_02a.cs // Secuencias de escape // Introducción a C#, por Nacho Cabanes using System; public class Ejemplo_03_03_02a { public static void Main() { Console.WriteLine("Esta es una frase"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("y esta es otra, separada dos lineas"); Console.WriteLine("\n\nJuguemos mas:\n\notro salto"); Console.WriteLine("Comillas dobles: \" y simples \', y barra \\"); } }
En algunas ocasiones puede ser incómodo manipular estas secuencias de escape. Por ejemplo, cuando usemos estructuras de directorios al estilo de MsDos y Windows, deberíamos duplicar todas las barras invertidas: c:\\datos\\ejemplos\\curso\\ejemplo1. En este caso, se puede usar una arroba (@) antes del texto, en vez de usar las barras invertidas:
ruta = @"c:\datos\ejemplos\curso\ejemplo1"
En este caso, el problema está si aparecen comillas en medio de la cadena. Para solucionarlo, se duplican las comillas, así:
orden = @"copy ""documento de ejemplo"" f:"
Ejercicios propuestos:
Ejercicio propuesto 3.3.2.1: Crea un programa que pida al usuario que teclee cuatro letras y las muestre en pantalla juntas, pero en orden inverso, y entre comillas dobles. Por ejemplo si las letras que se teclean son a, l, o, h, escribiría "hola".
Actualizado el: 12-11-2014 01:02