[ create a new paste ] login | about

Link: http://codepad.org/el8mrhi4    [ raw code | output | fork ]

C, pasted on Jan 23:
#include <stdio.h>

void quote(char *txt) {
	for (; *txt; txt++) {
		switch (*txt) {
			case '"' : printf("\\\"")    ; break;
			case '\n': printf("\\n")     ; break;
			case '\t': printf("\\t")     ; break;
			case '\\': printf("\\\\")    ; break;
			default  : printf("%c", *txt);
		}
	}
}

void quine(char *plan) {
	char *p;
	for (p = plan; *p; p++) {
		if (*p == 33)
			quote(plan);
		else
			printf("%c", *p);
	}
}

char plan[] = "#include <stdio.h>\n\nvoid quote(char *txt) {\n\tfor (; *txt; txt++) {\n\t\tswitch (*txt) {\n\t\t\tcase '\"' : printf(\"\\\\\\\"\")    ; break;\n\t\t\tcase '\\n': printf(\"\\\\n\")     ; break;\n\t\t\tcase '\\t': printf(\"\\\\t\")     ; break;\n\t\t\tcase '\\\\': printf(\"\\\\\\\\\")    ; break;\n\t\t\tdefault  : printf(\"%c\", *txt);\n\t\t}\n\t}\n}\n\nvoid quine(char *plan) {\n\tchar *p;\n\tfor (p = plan; *p; p++) {\n\t\tif (*p == 33)\n\t\t\tquote(plan);\n\t\telse\n\t\t\tprintf(\"%c\", *p);\n\t}\n}\n\nchar plan[] = \"!\";\n\nint main(void) {\n\tquine(plan);\n\treturn 0;\n}\n";

int main(void) {
	quine(plan);
	return 0;
}


Output:
#include <stdio.h>

void quote(char *txt) {
	for (; *txt; txt++) {
		switch (*txt) {
			case '"' : printf("\\\"")    ; break;
			case '\n': printf("\\n")     ; break;
			case '\t': printf("\\t")     ; break;
			case '\\': printf("\\\\")    ; break;
			default  : printf("%c", *txt);
		}
	}
}

void quine(char *plan) {
	char *p;
	for (p = plan; *p; p++) {
		if (*p == 33)
			quote(plan);
		else
			printf("%c", *p);
	}
}

char plan[] = "#include <stdio.h>\n\nvoid quote(char *txt) {\n\tfor (; *txt; txt++) {\n\t\tswitch (*txt) {\n\t\t\tcase '\"' : printf(\"\\\\\\\"\")    ; break;\n\t\t\tcase '\\n': printf(\"\\\\n\")     ; break;\n\t\t\tcase '\\t': printf(\"\\\\t\")     ; break;\n\t\t\tcase '\\\\': printf(\"\\\\\\\\\")    ; break;\n\t\t\tdefault  : printf(\"%c\", *txt);\n\t\t}\n\t}\n}\n\nvoid quine(char *plan) {\n\tchar *p;\n\tfor (p = plan; *p; p++) {\n\t\tif (*p == 33)\n\t\t\tquote(plan);\n\t\telse\n\t\t\tprintf(\"%c\", *p);\n\t}\n}\n\nchar plan[] = \"!\";\n\nint main(void) {\n\tquine(plan);\n\treturn 0;\n}\n";

int main(void) {
	quine(plan);
	return 0;
}


Create a new paste based on this one


Comments: