0Pricing
C Academy · Lekcja

Znaki jako liczby całkowite

Wartości ASCII

Znaki jako liczby całkowite to bezpłatna lekcja C Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C Academy zawiera 4 lekcji w sumie.

Znaki są liczbami

W języku C char jest po prostu małą liczbą całkowitą. Każdy znak ma wartość liczbową określoną w tabeli ASCII.

Litera 'A' jest przechowywana jako liczba 65, 'B' jako 66 itd.

#include <stdio.h>

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

Wyświetlanie wartości ASCII

Użyj specyfikatora formatu %d, aby wyświetlić char jako wartość całkowitą, oraz %c, aby wyświetlić go jako znak.

Tę samą zmienną można interpretować na oba sposoby.

#include <stdio.h>

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

Cyfry również mają kody

Znak '0' nie jest liczbą 0. Ma wartość ASCII 48.

Znaki cyfr od '0' do '9' mają kolejno kody od 48 do 57.

#include <stdio.h>

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

Konwersja znaku cyfry na liczbę

Ponieważ cyfry mają kolejne kody, można przekonwertować znak cyfry na jego wartość liczbową, odejmując '0'.

'7' - '0' jest równe 7.

#include <stdio.h>

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

Arytmetyka na znakach

Ponieważ typ char przechowuje liczby całkowite, można wykonywać na nich działania matematyczne. Dodanie 1 do 'A' daje kod znaku 'B'.

Działa to, ponieważ litery alfabetu występują w ASCII kolejno po sobie.

#include <stdio.h>

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

Iterowanie po alfabecie

Można przejść w pętli od 'a' do 'z', używając typu char jako licznika pętli.

Pętla porównuje kody znaków tak samo jak liczby.

#include <stdio.h>

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

Różnica między wielkościami liter

Wielkie i małe litery dzieli w ASCII różnica 32. 'a' ma wartość 97, a 'A' ma wartość 65.

Zatem 'a' - 'A' jest równe 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;
}

Ręczna konwersja wielkości liter

Znając różnicę równą 32, można zamienić małą literę na wielką, odejmując 32.

Dokładnie to robi funkcja toupper wewnętrznie.

#include <stdio.h>

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

Znaki specjalne

Znaki sterujące również mają swoje kody. Znak nowej linii '\n' ma wartość 10, tabulator '\t' ma wartość 9, a terminator null '\0' ma wartość 0.

Spacja ma wartość 32.

#include <stdio.h>

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

Typ char przechowuje małe liczby

Typ char zazwyczaj przechowuje wartości od -128 do 127 (ze znakiem) albo od 0 do 255 (bez znaku).

Można bezpośrednio przechowywać małe liczby całkowite w zmiennej typu char.

#include <stdio.h>

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

Tworzenie przesunięcia Cezara

Łącząc te pomysły, można utworzyć prosty szyfr Cezara, który przesuwa każdą literę o stałą liczbę pozycji, używając arytmetyki znaków.

W tym przykładzie przesuwamy literę o 3 pozycje do przodu.

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

Szybkie sprawdzenie

Sprawdź, jak dobrze rozumiesz znaki traktowane jako liczby całkowite.

Podsumowanie

Dowiedział się Pan, że w języku C:

  • char to mała liczba całkowita przechowująca kod ASCII.
  • %c wyświetla ją jako znak, a %d jako liczbę.
  • Cyfry '0'-'9' i litery występują kolejno po sobie, co umożliwia wykonywanie działań arytmetycznych.
  • Wyrażenie c - '0' zamienia znak cyfry na jego wartość, a różnica między wielkościami liter wynosi 32.

Często zadawane pytania

Czy lekcja „Znaki jako liczby całkowite” jest bezpłatna?

Tak — pełny tekst „Znaki jako liczby całkowite” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C Academy, przejdź na CoddyKit PRO. Kurs C Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Znaki jako liczby całkowite”?

Wartości ASCII Ćwiczysz C Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C Academy?

Nie wymagamy żadnego doświadczenia. C Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Znaki jako liczby całkowite”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C Academy?

Tak. Każda lekcja C Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Znaki jako liczby całkowite
  2. Biblioteka ctype
  3. Odczytywanie znaków
  4. Budowanie narzędzi do obsługi znaków
← Powrót do C Academy