Merkkijonon muuntaminen pieniksi kirjaimiksi

C:
Merkkijonon muuntaminen pieniksi kirjaimiksi

Kuinka:

C:ssä ei ole sisäänrakennettua funktiota merkkijonon muuntamiseksi suoraan pieniksi kirjaimiksi, toisin kuin jotkut korkean tason kielet. Tämä prosessi voidaan kuitenkin helposti toteuttaa käyttämällä C-standardikirjaston funktioita. Alla on askel askeleelta opas ja esimerkki siitä, miten merkkijono muunnetaan pieniksi kirjaimiksi.

#include <stdio.h>
#include <ctype.h>

void toLowerCase(char *str) {
    while (*str) {
        *str = tolower(*str);
        str++;
    }
}

int main() {
    char text[] = "Hello, World!";
    printf("Alkuperäinen: %s\n", text);

    toLowerCase(text);
    printf("Pienikirjaiminen: %s\n", text);

    return 0;
}

Esimerkkituloste:

Alkuperäinen: Hello, World!
Pienikirjaiminen: hello, world!

Esimerkissä toLowerCase funktio käy läpi jokaisen syötemerkkijonon merkin, muuntaen sen pienikirjaimiseksi vastineeksi käyttäen tolower funktiota ctype.h:sta. Muutos tehdään paikan päällä, muokaten alkuperäistä merkkijonoa.

Syvemmälle

Esimerkissä yllä käytetty tolower funktio on osa C-standardikirjastoa, erityisesti ctype.h otsikkotiedostossa. Se toimii nykyisen lokaalin perusteella, mutta standardille “C” lokaalille se käsittelee ASCII-merkistöä, jossa ‘A’:sta ‘Z’:aan muunnetaan ‘a’:ksi ‘z’:aan.

Historiallisesti merkistöjen koodaamisen ja kirjainkoon muuntamisen käsittely C:ssä oli tiiviisti sidoksissa ASCII-merkistöön, rajoittaen sen hyödyllisyyttä kansainvälisissä tai lokaaleissa sovelluksissa, joissa tavalliset merkit ASCII-merkistön ulkopuolelta ovat yleisiä. Modernit ohjelmointikielet saattavat tarjota sisäänrakennettuja merkkijonometodeja suorittamaan kirjainkoon muunnoksen ottaen huomioon lokaalin ja Unicode-merkit, joita C:ssä ei ole natiivisti.

Skenaarioissa, jotka vaativat laajaa tekstinkäsittelyä, erityisesti ei-ASCII merkkien kanssa, ohjelmoijat saattavat harkita kirjastojen käyttämistä, jotka tarjoavat parempaa kansainvälistämisen tukea, kuten ICU (International Components for Unicode). Kuitenkin useimmissa sovelluksissa, jotka käsittelevät ASCII-tekstiä, esitelty lähestymistapa on tehokas ja suoraviivainen. Se korostaa C:n taipumusta antaa ohjelmoijille hallinta datan manipuloinnissa, vaikkakin se vaatii hieman enemmän vaivannäköä verrattuna korkean tason kieliin.