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

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:

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

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 %cl*te\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 comentarioo consultautiliza losforos aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Caracteres códigos de escape en C. Salto de línea. Comillas. Mostrar letra eñe y tildes (2024)
Top Articles
Latest Posts
Article information

Author: Manual Maggio

Last Updated:

Views: 5721

Rating: 4.9 / 5 (49 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Manual Maggio

Birthday: 1998-01-20

Address: 359 Kelvin Stream, Lake Eldonview, MT 33517-1242

Phone: +577037762465

Job: Product Hospitality Supervisor

Hobby: Gardening, Web surfing, Video gaming, Amateur radio, Flag Football, Reading, Table tennis

Introduction: My name is Manual Maggio, I am a thankful, tender, adventurous, delightful, fantastic, proud, graceful person who loves writing and wants to share my knowledge and understanding with you.