main.c
#include <string.h> #include <stdio.h> #include "conversion.iso-8859-15.c" void convertir_minusculas(char* buffer) { unsigned char* indice; while (*buffer) { indice = strchr(mayusculas, *buffer); if (indice != NULL) { *buffer = minusculas; } buffer++; } } void convertir_mayusculas(char* buffer) { unsigned char* indice; while (*buffer) { indice = strchr(minusculas, *buffer); if (indice != NULL) { *buffer = mayusculas; } buffer++; } } void main(void) { char buffer; printf("%s\n%s\n", mayusculas, minusculas); while (!feof(stdin)) { fgets(buffer, 250, stdin); convertir_minusculas(buffer); puts(buffer); convertir_mayusculas(buffer); puts(buffer); *buffer = 0; } }
conversion.iso-8859-15.c
unsigned char mayusculas[] = { 0x41, // 0x0041 # LATIN CAPITAL LETTER A 0xC6, // 0x00C6 # LATIN CAPITAL LETTER AE 0xC1, // 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE 0xC2, // 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0xC4, // 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS 0xC0, // 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE 0xC5, // 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE 0xC3, // 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE 0x42, // 0x0042 # LATIN CAPITAL LETTER B 0x43, // 0x0043 # LATIN CAPITAL LETTER C 0xC7, // 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA 0x44, // 0x0044 # LATIN CAPITAL LETTER D 0x45, // 0x0045 # LATIN CAPITAL LETTER E 0xD0, // 0x00D0 # LATIN CAPITAL LETTER ETH 0xC9, // 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE 0xCA, // 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0xCB, // 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS 0xC8, // 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE 0x46, // 0x0046 # LATIN CAPITAL LETTER F 0x47, // 0x0047 # LATIN CAPITAL LETTER G 0x48, // 0x0048 # LATIN CAPITAL LETTER H 0x49, // 0x0049 # LATIN CAPITAL LETTER I 0xCD, // 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE 0xCE, // 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0xCF, // 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS 0xCC, // 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE 0x4A, // 0x004A # LATIN CAPITAL LETTER J 0x4B, // 0x004B # LATIN CAPITAL LETTER K 0x4C, // 0x004C # LATIN CAPITAL LETTER L 0x4D, // 0x004D # LATIN CAPITAL LETTER M 0x4E, // 0x004E # LATIN CAPITAL LETTER N 0xD1, // 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE 0x4F, // 0x004F # LATIN CAPITAL LETTER O 0xD3, // 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE 0xD4, // 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0xD6, // 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS 0xD2, // 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE 0xD8, // 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE 0xD5, // 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE 0x50, // 0x0050 # LATIN CAPITAL LETTER P 0x51, // 0x0051 # LATIN CAPITAL LETTER Q 0x52, // 0x0052 # LATIN CAPITAL LETTER R 0x53, // 0x0053 # LATIN CAPITAL LETTER S 0x54, // 0x0054 # LATIN CAPITAL LETTER T 0xDE, // 0x00DE # LATIN CAPITAL LETTER THORN 0x55, // 0x0055 # LATIN CAPITAL LETTER U 0xDA, // 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE 0xDB, // 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0xDC, // 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 0xD9, // 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE 0x56, // 0x0056 # LATIN CAPITAL LETTER V 0x57, // 0x0057 # LATIN CAPITAL LETTER W 0x58, // 0x0058 # LATIN CAPITAL LETTER X 0x59, // 0x0059 # LATIN CAPITAL LETTER Y 0xDD, // 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE 0xBE, // 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS 0x5A, // 0x005A # LATIN CAPITAL LETTER Z 0 // Fin de cadena }; unsigned char minusculas[] = { 0x61, // 0x0061 # LATIN SMALL LETTER A 0xE6, // 0x00E6 # LATIN SMALL LETTER AE 0xE1, // 0x00E1 # LATIN SMALL LETTER A WITH ACUTE 0xE2, // 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX 0xE4, // 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS 0xE0, // 0x00E0 # LATIN SMALL LETTER A WITH GRAVE 0xE5, // 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE 0xE3, // 0x00E3 # LATIN SMALL LETTER A WITH TILDE 0x62, // 0x0062 # LATIN SMALL LETTER B 0x63, // 0x0063 # LATIN SMALL LETTER C 0xE7, // 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA 0x64, // 0x0064 # LATIN SMALL LETTER D 0x65, // 0x0065 # LATIN SMALL LETTER E 0xF0, // 0x00F0 # LATIN SMALL LETTER ETH 0xE9, // 0x00E9 # LATIN SMALL LETTER E WITH ACUTE 0xEA, // 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX 0xEB, // 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS 0xE8, // 0x00E8 # LATIN SMALL LETTER E WITH GRAVE 0x66, // 0x0066 # LATIN SMALL LETTER F 0x67, // 0x0067 # LATIN SMALL LETTER G 0x68, // 0x0068 # LATIN SMALL LETTER H 0x69, // 0x0069 # LATIN SMALL LETTER I 0xED, // 0x00ED # LATIN SMALL LETTER I WITH ACUTE 0xEE, // 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX 0xEF, // 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS 0xEC, // 0x00EC # LATIN SMALL LETTER I WITH GRAVE 0x6A, // 0x006A # LATIN SMALL LETTER J 0x6B, // 0x006B # LATIN SMALL LETTER K 0x6C, // 0x006C # LATIN SMALL LETTER L 0x6D, // 0x006D # LATIN SMALL LETTER M 0x6E, // 0x006E # LATIN SMALL LETTER N 0xF1, // 0x00F1 # LATIN SMALL LETTER N WITH TILDE 0x6F, // 0x006F # LATIN SMALL LETTER O 0xF3, // 0x00F3 # LATIN SMALL LETTER O WITH ACUTE 0xF4, // 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX 0xF6, // 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS 0xF2, // 0x00F2 # LATIN SMALL LETTER O WITH GRAVE 0xF8, // 0x00F8 # LATIN SMALL LETTER O WITH STROKE 0xF5, // 0x00F5 # LATIN SMALL LETTER O WITH TILDE 0x70, // 0x0070 # LATIN SMALL LETTER P 0x71, // 0x0071 # LATIN SMALL LETTER Q 0x72, // 0x0072 # LATIN SMALL LETTER R 0x73, // 0x0073 # LATIN SMALL LETTER S 0x74, // 0x0074 # LATIN SMALL LETTER T 0xFE, // 0x00FE # LATIN SMALL LETTER THORN 0x75, // 0x0075 # LATIN SMALL LETTER U 0xFA, // 0x00FA # LATIN SMALL LETTER U WITH ACUTE 0xFB, // 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX 0xFC, // 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS 0xF9, // 0x00F9 # LATIN SMALL LETTER U WITH GRAVE 0x76, // 0x0076 # LATIN SMALL LETTER V 0x77, // 0x0077 # LATIN SMALL LETTER W 0x78, // 0x0078 # LATIN SMALL LETTER X 0x79, // 0x0079 # LATIN SMALL LETTER Y 0xFD, // 0x00FD # LATIN SMALL LETTER Y WITH ACUTE 0xFF, // 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS 0x7A, // 0x007A # LATIN SMALL LETTER Z 0 // Fin de cadena };