C Academy · Oppitunti

Merkit kokonaislukuina

ASCII-arvot.

Oppitunti 1/413 vaihetta

Merkit kokonaislukuina on ilmainen C Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C Academy-kurssilla on yhteensä 4 oppituntia.

Merkit ovat lukuja

C-kielessä char on vain pieni kokonaisluku. Jokaisella merkillä on numeerinen arvo, jonka määrittää ASCII-taulukko.

Kirjain 'A' tallennetaan numerona 65, 'B' on 66 ja niin edelleen.

#include <stdio.h>

int main(void) {
    char c = 'A';
    printf("The character %c has value %d\n", c, c);
    return 0;
}

ASCII-arvon tulostaminen

Käyttäkää %d-muotomääritettä tulostaaksenne char-arvon kokonaislukuna ja %c-määritettä tulostaaksenne sen merkkinä.

Samaa muuttujaa voidaan tarkastella molemmilla tavoilla.

#include <stdio.h>

int main(void) {
    char letter = 'z';
    printf("As char: %c\n", letter);
    printf("As int:  %d\n", letter);
    return 0;
}

Myös numeroilla on koodit

Merkki '0' ei ole luku 0. Sen ASCII-arvo on 48.

Numeromerkit '0'–'9' ovat koodeissa 48–57 järjestyksessä.

#include <stdio.h>

int main(void) {
    printf("'0' = %d\n", '0');
    printf("'9' = %d\n", '9');
    return 0;
}

Char-arvon muuntaminen numeroksi

Koska numeromerkit ovat peräkkäisiä, numeromerkin voi muuntaa lukuarvoksi vähentämällä siitä merkin '0'.

'7' - '0' on 7.

#include <stdio.h>

int main(void) {
    char d = '7';
    int value = d - '0';
    printf("The digit value is %d\n", value);
    return 0;
}

Merkeillä laskeminen

Koska char-arvot ovat kokonaislukuja, niillä voi laskea. Kun arvoon 'A' lisätään 1, saadaan merkin 'B' koodi.

Tämä toimii, koska aakkosten kirjaimet ovat ASCII:ssa peräkkäisiä.

#include <stdio.h>

int main(void) {
    char c = 'A';
    char next = c + 1;
    printf("After A comes %c\n", next);
    return 0;
}

Aakkoston läpikäynti silmukalla

Voit käydä merkit 'a':sta 'z':aan läpi käyttämällä char-tyyppistä silmukkalaskuria.

Silmukka vertaa merkkien koodeja aivan kuten lukuja.

#include <stdio.h>

int main(void) {
    for (char c = 'a'; c <= 'z'; c++) {
        printf("%c", c);
    }
    printf("\n");
    return 0;
}

Kirjainkoon väli

ASCII:ssa isot ja pienet kirjaimet ovat 32:n päässä toisistaan. 'a' on 97 ja 'A' on 65.

Siksi 'a' - 'A' on yhtä suuri kuin 32.

#include <stdio.h>

int main(void) {
    printf("'A' = %d\n", 'A');
    printf("'a' = %d\n", 'a');
    printf("Gap = %d\n", 'a' - 'A');
    return 0;
}

Kirjainkoon muuntaminen käsin

Kun tiedät välin olevan 32, voit muuntaa pienet kirjaimet isoiksi vähentämällä luvun 32.

Juuri näin toupper toimii taustalla.

#include <stdio.h>

int main(void) {
    char lower = 'm';
    char upper = lower - 32;
    printf("%c becomes %c\n", lower, upper);
    return 0;
}

Erikoismerkit

Myös ohjausmerkeillä on koodit. Rivinvaihto '\n' on 10, sarkain '\t' on 9 ja tyhjämerkin päättävä merkki '\0' on 0.

Välilyöntimerkin arvo on 32.

#include <stdio.h>

int main(void) {
    printf("newline = %d\n", '\n');
    printf("tab     = %d\n", '\t');
    printf("space   = %d\n", ' ');
    return 0;
}

Char sisältää pieniä lukuja

char sisältää yleensä arvot välillä -128–127 (signed) tai 0–255 (unsigned).

Voit tallentaa pieniä kokonaislukuja suoraan char-muuttujaan.

#include <stdio.h>

int main(void) {
    char small = 100;
    small = small + 5;
    printf("small = %d\n", small);
    return 0;
}

Caesar-siirron rakentaminen

Yhdistämällä nämä ideat saat yksinkertaisen Caesar-salakirjoituksen, jossa jokaista kirjainta siirretään vakiomäärän verran merkkiaritmetiikan avulla.

Tässä siirrämme yhtä kirjainta kolme askelta eteenpäin.

#include <stdio.h>

int main(void) {
    char c = 'x';
    char shifted = 'a' + (c - 'a' + 3) % 26;
    printf("%c shifted by 3 = %c\n", c, shifted);
    return 0;
}

Pikatarkistus

Testaa ymmärrystäsi merkeistä kokonaislukuina.

Kertaus

Opit, että C:ssä:

  • char on pieni kokonaisluku, joka sisältää ASCII-koodin.
  • %c tulostaa arvon merkkinä ja %d lukuna.
  • Numerot '0'–'9' ja kirjaimet ovat peräkkäisiä, joten niillä voi laskea.
  • c - '0' muuntaa numeromerkin sitä vastaavaksi arvoksi, ja kirjainkoon väli on 32.
Aloita maksutta

Opi C tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
39
Oppitunnit
144

Usein kysytyt kysymykset

Onko oppitunti ”Merkit kokonaislukuina” ilmainen?

Kyllä – oppitunnin ”Merkit kokonaislukuina” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C Academy-kurssin, päivitä CoddyKit PROhon. C Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Merkit kokonaislukuina”?

ASCII-arvot. Harjoittelet C Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni C Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin C Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Merkit kokonaislukuina”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä C Academy-oppitunnilla?

Kyllä. Jokainen C Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Merkit kokonaislukuina
  2. ctype-kirjasto
  3. Merkkien lukeminen
  4. Merkkityökalujen rakentaminen
← Takaisin: C Academy