[C] Convertir las letras acentuadas a mayúsculas

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
};

 

 

 

PandaGG
Lok'tar ogar

Dejar respuesta

Please enter your comment!
Please enter your name here

Sponsor

Últimos

Ausländisches Casino Bitcoin: Eine umfassende Analyse für erfahrene Spieler

EinführungIn der heutigen digitalen Welt hat sich das Glücksspiel erheblich verändert, insbesondere mit dem Aufkommen von Kryptowährungen wie Bitcoin. Ausländische Casinos, die Bitcoin als...

Coronavirus disease 2019

COVID-19 is a contagious disease caused by the coronavirus SARS-CoV-2. In January 2020, the disease spread worldwide, resulting in the COVID-19 pandemic. The symptoms of...

favorite article 759359

favorite article 759359

Migliori Casino Online Non AAMS: Cosa Valutare Prima di Registrarsi

IntroduzioneNegli ultimi anni, i casinò online non AAMS hanno guadagnato popolarità tra i giocatori esperti in Italia. Questi siti offrono una vasta gamma di...

Casinos mit schneller Auszahlung: Bearbeitungszeiten und Limits

EinführungIn der Welt der Online-Casinos ist die Geschwindigkeit der Auszahlungen ein entscheidender Faktor für Spieler, insbesondere für Anfänger in Österreich. Die Bearbeitungszeiten und Limits...