XKCD-CS/Quines

From XKCD Wiki
Jump to: navigation, search

You are in a page of twisty pages, all alike.
Exits: Up Down

[edit] JAPH

PHP alexbobp

Just Another PHP Hacker <!-- It's also a quine, try it! -->

[edit] C Quine

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

char* escape(char* f)
{
char* f2 = (char*)calloc(strlen(f)*2, 1);
char* m;
for (m = f2;*f;f++, m++)
{
if (*f=='"')
{
*m = '\\';
*(++m) = '"';
}
else if (*f=='\n')
{
*m = '\\';
*(++m) = 'n';
}
else if (*f=='\\')
{
*m = '\\';
*(++m) = '\\';
}
else
{
*m = *f;
}
}
*m = 0;
return f2;
}

int main()
{
char f[]="#include <stdio.h>\n#include <string.h>\n#include <stdlib.h>\n\nchar* escape(char* f)\n{\nchar* f2 = (char*)calloc(strlen(f)*2, 1);\nchar* m;\nfor (m = f2;*f;f++, m++)\n{\nif (*f=='\"')\n{\n*m = '\\\\';\n*(++m) = '\"';\n}\nelse if (*f=='\\n')\n{\n*m = '\\\\';\n*(++m) = 'n';\n}\nelse if (*f=='\\\\')\n{\n*m = '\\\\';\n*(++m) = '\\\\';\n}\nelse\n{\n*m = *f;\n}\n}\n*m = 0;\nreturn f2;\n}\n\nint main()\n{\nchar f[]=\"%s\";\nprintf(f, escape(f));\nreturn 0;\n}\n";
printf(f, escape(f));
return 0;
}