[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

Sådan fungerer væddemålskrav

IntroduktionVæddemålskrav er en vigtig del af online gambling, især for erfarne spillere i Danmark. Disse krav bestemmer, hvor mange gange du skal spille dine...

1xBet TV igre: Vse, kar morate vedeti

Uvod1xBet TV igre so postale pomemben del spletnega stavništva in iger na srečo v Sloveniji. Te igre ponujajo edinstveno izkušnjo, ki združuje zabavo in...

Hur man undviker att förlora pengar snabbt på casinon

IntroduktionAtt spela på casino kan vara en spännande och underhållande aktivitet, men det finns också en risk att förlora pengar snabbt, särskilt för nybörjare....

Klepet v igrah z živimi delivci

UvodKlepet v igrah z živimi delivci je postopek, ki omogoča igralcem, da komunicirajo z delivci v realnem času. Ta oblika interakcije je postala izjemno...

Пин ап казино в Казахстане: как быстро и надежно сделать депозит

Пин Ап казино — это один из популярных игровых клубов в Казахстане, который предлагает своим пользователям широкий выбор азартных игр и удобные способы пополнения...