Autor Tema: LenguajeC CU00524F Caracteres códigos de escape en c,saltos de linea ñ y tildes  (Leído 5004 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Hola dejo una posible solución al ejercicio CU00524F.

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()
{
    char texto1[30] = "El antílope está hecho añicos";
    char texto2[15] = "Hoy llueve";
    char texto3[20] = "El cañón es corto";
    char texto4[25] = "aprenderaprogramar";

    printf("\n\tEl ant%clope est%c hecho a%cicos\n", 161,160,164,texto1);
    printf("\t\tHoy llueve\n", texto2);
    printf("\t\t\tEl ca%c%cn es corto\n", 164,162,texto3);
    printf("\t\t\t\taprenderaprogramar\n", texto4);
    return 0;
}


Saludos y como siempre gracias por vuestro tiempo.....

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola Pandemia.

No estás mostrando las variables, estás mostrando un texto que es el mismo que contienen las variables declaradas,  tendrías que mostrar algo así:

Código: [Seleccionar]
printf("\n\t%s\n", texto1);
y así con las demás variables.

Saludos.  ;D

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas Pedro me estoy volviendo loco con lo de las variables y no hay manera, a ver si me puedes echar un cable... te dejo el código nuevo que ahora no me funciona nada

Gracias por la ayuda

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

int main()
{
    char á = \z01; é = \z02; í = \z03; ó = \z04; ú = \z05; ñ = \z06; Ñ = \z07;
    char á = 160; é = 130; í = 161; ó = 162; ú = 163; ñ = 164; Ñ = 165;
    char texto1[30] = "<<El ant\z03lope est\z01 hecho a\z03icos>>";
    char texto2[15] = "<<Hoy llueve>>";
    char texto3[20] = "<<El ca\z06\z04n es corto>>";
    char texto4[25] = "<<aprenderaprogramar>>";

    printf("\n\t%s\n", texto1);
    printf("\t\t%s\n", texto2);
    printf("\t\t\t%s\n", texto3);
    printf("\t\t\t\t%s\n", texto4);

    printf("\n\t<<El ant%clope est%c hecho a%cicos>>\n", 161,160,164,texto1);
    printf("\t\t<<Hoy llueve>>\n", texto2);
    printf("\t\t\t<<El ca%c%cn es corto>>\n", 164,162,texto3);
    printf("\t\t\t\<<taprenderaprogramar>>\n\n", texto4);
    return 0;
}

Gracias de nuevo por la ayuda que siempre me aportas y el tiempo que dedicas, gracias.
Saludos. :)
« Última modificación: 22 de Junio 2016, 21:48 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas.

Las dos primeras líneas del main(), no son correctas, lo primero porque no está permitido palabras con tilde como nombres de variables, además los valores que les das, no corresponden con las letras a las que quieres representar. El ejercicio es más fácil de como te lo plantes.
En cuanto a las tildes, si usas código ascii hexadecimal sería:
á –> \xA0
é –> \x82
í –> \xA1
ó –> \xA2
ú –> \xA3
ñ –> \xA4
Ñ –> \xA5
Y el código ascii decimal es:
á -> 160
é -> 130
í -> 161
ó -> 162
ú -> 163
ñ -> 164
El código hexadecimal puedes usarlo de la siguiente forma:

Código: [Seleccionar]
char texto1 [50] = "<<El ant\xA1lope est\xA0 hecho a\xA4icos>>";
y el decimal, de la forma que tu lo utilizaste.

Código: [Seleccionar]
printf("\t<<El ant%clope est%c hecho a%cicos>>\n", 161, 160, 164);
Así que quitando las dos primeras líneas que te comenté y cambiando el valor de las variables usando el código apropiado y también quitando el nombre de las variables texto1, texto2, texto3 y texto4 en los cuatro ultimas sentencias printf(), debido a que no les estás dando uso, puesto que no las estás imprimiendo el código ya te quedaría correcto.

Si quieres puedes echar un vistazo a esta solución del ejercicio.

https://www.aprenderaprogramar.com/foros/index.php?topic=4584.msg18773#msg18773

Saludos.

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas Pedro ya me has aclarado la duda y he cambiado el código aunque en hexadecimal me hace alguna cosilla rara como repetir una frase prácticamente hace  lo que pide el ejercicio te dejo el código para que lo veas.

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

int main()
{
    // á –> \xA0; é –> \x82; í –> \xA1; ó –> \xA2; ú –> \xA3; ñ –> \xA4; Ñ –> \xA5;
    // á -> 160; é -> 130; í -> 161; ó -> 162; ú -> 163; ñ -> 164; Ñ -> 165;
    char texto1[30] = "<<El ant\xA1lope est\xA0 hecho a\xA4icos>>";
    char texto2[15] = "<<Hoy llueve>>";
    char texto3[20] = "<<El ca\xA4\xA2n es corto>>";
    char texto4[25] = "<<aprenderaprogramar>>";

    printf("\n\t%s\n", texto1);
    printf("\t\t%s\n", texto2);
    printf("\t\t\t%s\n", texto3);
    printf("\t\t\t\t%s\n", texto4);

    printf("\n\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");
    return 0;
}

Saludos y gracias por la ayuda....  ;)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas.

Las cosas raras que te suceden es porque texto1 y texto3 los has declarado demasiado pequeños.

si en vez de texto1[30] pones texto1[40] y lo mismo con texto3, ya te saldrá todo correcto.

Saludos.

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Ok, tienes razón no había caído en contar los signos, letras, espacios y demás para poner el índice del array.

Gracias por la corrección y ayuda, como siempre me sacas de todas las dudas, te lo agradezco.

Saludos. ;)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".