Tämä yksinkertainen ohjelma ISO Latin-1 -tekstin muuntamiseksi HTML-kelpoiseksi on yleistä omaisuutta. Muunnostaulukko on ripattu W3C Tidy:sta - tosin se ei ole siellä ollenkaan samassa muodossa.
#include <stdio.h>
char *trans[] = {
"\000", "\001", "\002", "\003", "\004", "\005", "\006", "\007",
"\010", "\011", "\012", "\013", "\014", "\015", "\016", "\017",
"\020", "\021", "\022", "\023", "\024", "\025", "\026", "\027",
"\030", "\031", "\032", "\033", "\034", "\035", "\036", "\037",
"\040", "\041", """, "\043", "\044", "\045", "&", "\047",
"\050", "\051", "\052", "\053", "\054", "\055", "\056", "\057",
"\060", "\061", "\062", "\063", "\064", "\065", "\066", "\067",
"\070", "\071", "\072", "\073", "<", "\075", ">", "\077",
"\100", "\101", "\102", "\103", "\104", "\105", "\106", "\107",
"\110", "\111", "\112", "\113", "\114", "\115", "\116", "\117",
"\120", "\121", "\122", "\123", "\124", "\125", "\126", "\127",
"\130", "\131", "\132", "\133", "\134", "\135", "\136", "\137",
"\140", "\141", "\142", "\143", "\144", "\145", "\146", "\147",
"\150", "\151", "\152", "\153", "\154", "\155", "\156", "\157",
"\160", "\161", "\162", "\163", "\164", "\165", "\166", "\167",
"\170", "\171", "\172", "\173", "\174", "\175", "\176", "\177",
"\200", "\201", "\202", "\203", "\204", "\205", "\206", "\207",
"\210", "\211", "\212", "\213", "\214", "\215", "\216", "\217",
"\220", "\221", "\222", "\223", "\224", "\225", "\226", "\227",
"\230", "\231", "\232", "\233", "\234", "\235", "\236", "\237",
" ", "¡", "¢", "£",
"¤", "¥", "¦", "§",
"¨", "©", "ª", "«",
"¬", "­", "®", "¯",
"°", "±", "²", "³",
"´", "µ", "¶", "·",
"¸", "¹", "º", "»",
"¼", "½", "¾", "¿",
"À", "Á", "Â", "Ã",
"Ä", "Å", "Æ", "Ç",
"È", "É", "Ê", "Ë",
"Ì", "Í", "Î", "Ï",
"Ð", "Ñ", "Ò", "Ó",
"Ô", "Õ", "Ö", "×",
"Ø", "Ù", "Ú", "Û",
"Ü", "Ý", "Þ", "ß",
"à", "á", "â", "ã",
"ä", "å", "æ", "ç",
"è", "é", "ê", "ë",
"ì", "í", "î", "ï",
"ð", "ñ", "ò", "ó",
"ô", "õ", "ö", "÷",
"ø", "ù", "ú", "û",
"ü", "ý", "þ", "ÿ"
};
int main( int ac, char *av[] )
{
int c;
char *escbeg = "\n[[[", *escr = escbeg;
char *escend = "\n]]]";
while (( c = getchar() ) != EOF ) {
if ( c == *escr ) ++escr;
else escr = escbeg;
if ( !*escr ) {
escr = escend;
putchar( c );
while (( c = getchar() ) != EOF ) {
if ( c == *escr ) ++escr;
else escr = escend;
if ( !*escr ) break;
else putchar( c );
}
if ( c == EOF ) break;
escr = escbeg;
}
if ( !c ) putchar( 0 ); /* because of how stdio handles strings */
else fputs( trans[c], stdout );
}
}
Tämän ohjelman copypaste aiheutti taas tarpeen yhteen korjaukseen pikipikissä. Wikimuutokset.