Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 17 de Mayo 2016, 18:51

Título: C (LenguajeC) Códigos de escape, salto de línea, mostrar eñes y tildes. CU00524F
Publicado por: pedro,, en 17 de Mayo 2016, 18:51
Hola, dejo una posible solución al ejercicio.

Citar
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”.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main()
{
    //á –> \xA0; é –> \x82; í –> \xA1; ó –> \xA2; ú –> \xA3; ñ –> \xA4; Ñ –> \xA5;
    //á -> 160; é -> 130; í -> 161; ó -> 162; ú -> 163; ñ -> 164;
    char texto1 [50] = "<<El ant\xA1lope est\xA0 hecho a\xA4icos>>";
    char texto2 [50] = "<<Hoy llueve>>";
    char texto3 [50] = "<<El ca\xA4\xA2n es corto>>";
    char texto4 [50] = "<<aprenderaprogramar>>";
    printf("\t%s\n", texto1);
    printf("\t\t%s\n", texto2);
    printf("\t\t\t%s\n", texto3);
    printf("\t\t\t\t%s\n\n\n", texto4);
    printf("\t<<El ant%clope est%c hecho a%cicos>>\n", 161, 160, 164);
    printf("\t\t<<Hoy llueve>>\n");
    printf("\t\t\t<<El ca%c%cn es corto>>\n", 164, 162);
    printf("\t\t\t\t<<aprenderaprogramar>>\n\n\n");
    return 0;
}

He resuelto el ejercicio de dos formas:

En la primera, cuando inicializo las variables, en las cadenas de texto he introducido el código ascii hexadecimal de las letras que llevan tilde o eñe y posteriormente se muestran por pantalla las variables.

En la segunda, al mostrar el mensaje por pantalla, he introducido el código ascii decimal de las letras que contienen tildes o eñes.

Saludos. ;D
Título: Re:C (LenguajeC) Códigos de escape, salto de línea, mostrar eñes y tildes. CU00524F
Publicado por: Daniloboy en 18 de Mayo 2016, 11:41
Hey tiene buena pinta el hexadecimal, no sabía que se podía poner directamente, gracias por compartirlo.
Título: Re:C (LenguajeC) Códigos de escape, salto de línea, mostrar eñes y tildes. CU00524F
Publicado por: David M en 18 de Septiembre 2020, 23:03
Alguien sabe cómo poner símbolos como el signo de interrogación abierto y cerrado?
Título: Re:C (LenguajeC) Códigos de escape, salto de línea, mostrar eñes y tildes. CU00524F
Publicado por: Alejandra Mirano en 28 de Septiembre 2020, 23:36
Alguien sabe cómo poner símbolos como el signo de interrogación abierto y cerrado?

Puedes usar la función
setlocale(LC_CTYPE, "Spanish"); que se encuentra en la libreria #include<locale.h> de C.
Espero te sirva.
Título: Re:C (LenguajeC) Códigos de escape, salto de línea, mostrar eñes y tildes. CU00524F
Publicado por: mark255 en 13 de Octubre 2020, 23:27
Alguien sabe cómo poner símbolos como el signo de interrogación abierto y cerrado?

Puedes usar la función
setlocale(LC_CTYPE, "Spanish"); que se encuentra en la libreria #include<locale.h> de C.
Espero te sirva.

efectivamente lo suyo seria con locale, aunque en gnulinux no me hace falta
sale perfecto igual  ;)

Código: [Seleccionar]
#include <stdio.h>
#include <locale.h>

#define FIL 4
#define COL 50

int main()
{
   // Establecer el idioma a español
   setlocale(LC_ALL, "spanish");
   
   char texto [FIL][COL] =
   { 
      "<<El antílope está hecho añicos>>",
      "<<Hoy llueve>>",
      "<<El cañón es corto>>",
      "<<aprenderaprogramar>>"
   };

   for(int i = 0; i < FIL; i++)     // para las filas
   {
      for(int j = 0; j < i+1; j++)   // para los tabuladores
         printf("\t");
      printf("%s\n", texto[i]);
   }

   return 0;
}

ah, el resaltado de codigo sin colores es bastante soso ¿no?
quizás se vea mejor aquí: https://linkode.org/#jMbxXa4lFEHPTVQ18UeLS6   :)