elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa que imprime su código
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa que imprime su código  (Leído 1,572 veces)
N0body

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Programa que imprime su código
« en: 28 Agosto 2011, 21:48 pm »

Uno de los ejercicios propuestos por un profesor de programación, fue el de hacer un programa que imprima su código. (Obviamente sin leer ningún archivo)
Aquí una posible solución, se puede hacer mucho más corto, quitando las tabulaciones y los saltos de línea, pero así queda más visual de corroborar.

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main(int argc, char **argv)
  5. {
  6. int i,n;
  7. char palabra[] = "#include <stdio.h>\n#include <string.h>\n\nint main(int argc, char **argv)\n{\n\tint i, n;\n\tchar palabra[] = \tn=strlen (palabra);\n\tpalabra[102]='\\0';\n\tprintf (\"%s \",palabra);\n\tpalabra[102]=' ';\n\tprintf (\"\\\"\");\n\tfor (i=0;i<n;i++)\n\t\tswitch (palabra[i])\n\t\t\t{\n\t\t\t\tcase '\\n':\n\t\t\t\tprintf (\"\\\\n\");\n\t\t\t\tbreak;\n\t\t\t\tcase '\\t':\n\t\t\t\tprintf (\"\\\\t\");\n\t\t\t\tbreak;\n\t\t\t\tcase '\\\\':\n\t\t\t\tprintf (\"\\\\\\\\\");\n\t\t\t\tbreak;\n\t\t\t\tcase '\\\"':\n\t\t\t\tprintf (\"\\\\\\\"\");\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\tprintf (\"%c\",palabar[i]);\n\t\t\t}\n\tprintf (\"\\\";\\n\");\n\tprintf (\"%s\", palabra+103);\n\treturn 0\n}";
  8. n=strlen (palabra);
  9. palabra[102]='\0';
  10. printf ("%s ",palabra);
  11. palabra[102]=' ';
  12. printf ("\"");
  13. for (i=0;i<n;i++)
  14. switch (palabra[i])
  15. {
  16. case '\n':
  17. printf ("\\n");
  18. break;
  19. case '\t':
  20. printf ("\\t");
  21. break;
  22. case '\\':
  23. printf ("\\\\");
  24. break;
  25. case '\"':
  26. printf ("\\\"");
  27. break;
  28. default:
  29. printf ("%c",palabra[i]);
  30. }
  31. printf ("\";\n");
  32. printf ("%s", palabra+103);
  33. return 0;
  34. }
  35.  


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Programa que imprime su código
« Respuesta #1 en: 28 Agosto 2011, 22:16 pm »

Eso se llamaba "quine" o algo así, no?? Es curioso


En línea

Breakbeat como forma de vida
N0body

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Re: Programa que imprime su código
« Respuesta #2 en: 28 Agosto 2011, 22:54 pm »

Citar
Eso se llamaba "quine" o algo así, no?? Es curioso
Fijándome, así es, gracias por el dato. Acá pongo el link de la wikipedia: http://en.wikipedia.org/wiki/Quine_%28computing%29
En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Programa que imprime su código
« Respuesta #3 en: 28 Agosto 2011, 23:49 pm »

Los chicos de Visual Basic hicieron un reto que trataba de mostrar el codigo fuente del programa ejecutado:

[Reto] Show My Source Code.


En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines