Caracteres códigos de escape en C. Salto de línea. Comillas. Mostrar letra eñe y tildes - acentos (CU00524F)

Resumen: Entrega nº24 del tutorial "Curso básico de programación en lenguaje C desde cero".
Codificación aprenderaprogramar.com: CU00524F

 

 

CARACTERES O CÓDIGOS DE ESCAPE EN C

Una tarea con la que nos enfrentamos con frecuencia como programadores es la de pedir datos al usuario. Por ejemplo, que introduzca un número o que introduzca una palabra. La sintaxis básica para pedir datos al usuario a través de teclado se basa en la función scanf y es la siguiente:

logo lenguaje programacion C

 

Hay algunas circunstancias especiales, como el querer mostrar unas comillas en un texto, que han de resolverse de una forma especial, en este caso por ser las comillas el carácter de apertura y cierre para el texto en la función printf. Por ejemplo introducir unas comillas como printf("El presidente dijo "hola""); daría lugar al cierre del texto y a un error sintáctico. Esta cuestión, así como la representación de singularidades como el tabulador o un salto de línea se solucionan utilizando lo que se denomina secuencias de escape. Las más comunes son las siguientes:

Secuencia de escape

Significado aprenderaprogramar.com

\n

Retorno de carro y salto de línea (nueva línea)

\t

Tabulación

\\

Barra inclinada invertida

\"

Comillas

 

 

Existen más cadenas de escape, pero las indicadas son las más habituales y las que emplearemos de aquí en adelante en algunas ocasiones. Ejecuta este código:

#include <stdio.h>
#include <stdlib.h>
// Ejemplo aprenderaprogramar.com
int main() {
    printf ("Saltos de linea. El presidente dijo hola \n\n");
    printf ("\tTabulador. El presidente dijo hola \n\n");
    printf ("Barra invertida. El presidente dijo \\hola\\\n\n");
    printf ("Comillas. El presidente dijo: \"hola\"\n\n");
    return 0;
}

 

El resultado debe ser similar a:

Saltos de linea. El presidente dijo hola

        Tabulador. El presidente dijo hola

Barra invertida. El presidente dijo \hola\

Comillas. El presidente dijo: "hola"

 

 

MOSTRAR LA LETRA EÑE Y MOSTRAR TILDES EN C

Ya habrás comprobado que con printf la letra ñ no es mostrada por pantalla y las tildes tampoco. Por ejemplo si mostramos con printf las palabras año o camión se visualizan por pantalla a±o o cami¾n en lugar de las palabras que hemos escrito. Esto es debido a motivos históricos y a los orígenes anglosajones del lenguaje. C usa el juego de caracteres ASCII por el que cada letra tiene asociado un número. Por ejemplo la letra A mayúscula tiene asociado el número 65, la B el 66…, y la a minúscula tiene asociado el número 97, la letra b el 98… . Cada letra tiene un número asociado de forma que se permite escribir una sentencia donde se muestre un carácter indicando cuál es su número asociado. Ejecuta este código:

#include <stdio.h>
#include <stdlib.h>
// Ejemplo aprenderaprogramar.com
int main() {
    printf("%c \n",65);
    printf("%cbeto \n",65);
    printf("%c \n",97);
    printf("%cbeto \n",97);
    return 0;
}

 

El resultado obtenido debe ser A, Abeto, a, abeto. %c indica que se va a mostrar un carácter y el número indica el código asociado de dicho carácter. Conociendo que la ñ minúscula es el número 164 y la Ñ mayúscula el 165 bastará escribir printf("a%co \n\n",164); para que por pantalla se muestre “año” o printf("A%cO \n",165); para visualizar la letra ñ en mayúsculas.

Nota: en algunos sistemas operativos los juegos de caracteres y números asociados a cada letra podrían variar. Ten en cuenta que los aspectos relacionados con codificación y juegos de caracteres suelen ser problemáticos en los sistemas informáticos en general, más allá de que C presente una dificultad especial con tildes y eñes.

Para obtener las letras con tildes procederemos de la misma manera conociendo los valores numéricos asociados a cada letra. Ejecuta este código para comprobar lo que decimos:

#include <stdio.h>
#include <stdlib.h>


int main() {
    printf("%c de %crbol\n",160, 160); //á
    printf("%c de %clite\n",130, 130); //é
    printf("%c aparece en pr%cstino\n",161, 161); //í
    printf("%c aparece en cami%cn\n",162, 162); //ó
    printf("%c aparece en t%c\n",163, 163); //ú
    return 0; // Ejemplo aprenderaprogramar.com
}

 

 

El resultado será similar a: á de árbol, é de élite, í aparece en prístino, ó aparece en camión, ú aparece en tú.

Esta forma de mostrar eñes y tildes es un poco engorrosa aunque por el momento nos resultará suficiente. Con conocimientos un poco más avanzados, no es difícil construir un pequeño programa o función que haga el trabajo automáticamente sin necesidad de estar incluyendo una referencia al código numérico cada vez que queramos escribir uno de estos caractereres.

 

 

EJERCICIO

Crea un programa donde se cumplan estas indicaciones. Declara cuatro variables que serán arrays de caracteres. Establece los siguientes contenidos. Para la primera variable: <<El antílope está hecho añicos>>. Para la segunda variable: <<Hoy llueve>>. Para la tercera variable: <<El cañón es corto>>. Para la cuarta variable: <<aprenderaprogramar>>. Muestra el contenido de las variables por pantalla, cada contenido en una línea y antecediendo la primera variable de una tabulación, la segunda de dos tabulaciones y así sucesivamente. De este modo, el efecto será el de un texto “escalonado”.

 

Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

MARZO - ABRIL 2017

1. Java / J2EE
2. Entornos Oracle
3. JavaScript, jQuery
4. .NET, C#
5. Entornos SQL Server
6. HTML, CSS
7. Php, MySql
8. Android, iOS


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación