W tej lekcji omówimy typy danych w C++, które służą do przechowywania znaków alfanumerycznych. W C++ możesz używać typu char
do przechowywania pojedynczych znaków (np. ‘A’, ‘z’, ‘5’) oraz typu std::string
do przechowywania ciągów znaków, takich jak słowa czy zdania.
Zrozumienie różnicy między tymi typami danych oraz umiejętność pracy z nimi to kluczowe umiejętności podczas nauki C++. W tej lekcji zaprezentujemy kilka przykładów korzystania z tych typów, pokazując, jak je deklarować, inicjalizować i używać w podstawowych operacjach.
Przykład kodu – Praca z typami znakowymi w C++
Stwórz nowy plik o nazwie characters.cpp
i wklej do niego poniższy kod:
// Importujemy bibliotekę iostream do operacji wejścia/wyjścia
#include <iostream>
// Importujemy bibliotekę string do obsługi typu std::string
#include <string>
// Główna funkcja programu
int main() {
// --- Typ char: przechowywanie pojedynczych znaków ---
char letter = 'A'; // Deklarujemy zmienną znakową 'letter' i przypisujemy jej wartość 'A'
char digit = '5'; // Deklarujemy zmienną znakową 'digit' i przypisujemy jej wartość '5'
char symbol = '!'; // Deklarujemy zmienną znakową 'symbol' i przypisujemy jej wartość '!'
// Wyświetlamy wartości zmiennych typu char
std::cout << "Znak: " << letter << std::endl;
std::cout << "Cyfra jako znak: " << digit << std::endl;
std::cout << "Symbol: " << symbol << std::endl;
// --- Typ std::string: przechowywanie ciągów znaków ---
std::string greeting = "Witaj, świecie!"; // Deklarujemy zmienną łańcuchową 'greeting' i przypisujemy jej wartość "Witaj, świecie!"
std::string name = "Jan"; // Deklarujemy zmienną łańcuchową 'name' i przypisujemy jej wartość "Jan"
// Wyświetlamy wartości zmiennych typu std::string
std::cout << "Pozdrowienie: " << greeting << std::endl;
std::cout << "Imię: " << name << std::endl;
// --- Operacje na zmiennych znakowych i łańcuchach znaków ---
// Zmiana wartości zmiennej typu char
letter = 'B'; // Zmieniamy wartość zmiennej 'letter' na 'B'
std::cout << "Zmieniony znak: " << letter << std::endl;
// Konkatenacja (łączenie) ciągów znaków
std::string fullGreeting = greeting + " Mam na imię " + name + "."; // Łączymy kilka ciągów znaków
std::cout << "Pełne pozdrowienie: " << full
Jak działa ten program
Program demonstruje, jak w C++ używać typów danych do przechowywania znaków alfanumerycznych. Na początku program importuje niezbędne biblioteki: iostream
do operacji wejścia/wyjścia oraz string
do obsługi typu std::string
. Następnie, wewnątrz funkcji main()
, program pokazuje, jak deklarować zmienne znakowe (char
) i łańcuchowe (std::string
), a także jak wykonywać na nich podstawowe operacje.
W programie wyświetlamy pojedyncze znaki (char
) oraz całe ciągi znaków (std::string
). Następnie modyfikujemy wartość zmiennej znakowej oraz łączymy kilka łańcuchów w jeden za pomocą operatora +
. Później program ilustruje, jak uzyskać dostęp do pojedynczego znaku w ciągu znaków i jak go zmienić.
Wyjaśnienie
- Deklaracja i inicjalizacja zmiennych typu
char
:char letter = 'A';
– Zmiennaletter
przechowuje pojedynczy znak'A'
.char digit = '5';
– Zmiennadigit
przechowuje znak'5'
.char symbol = '!';
– Zmiennasymbol
przechowuje znak'!'
.- W C++ zmienne typu
char
przechowują jeden znak w pojedynczych apostrofach ('
).
- Deklaracja i inicjalizacja zmiennych typu
std::string
:std::string greeting = "Witaj, świecie!";
– Zmiennagreeting
przechowuje ciąg znaków.std::string name = "Jan";
– Zmiennaname
przechowuje ciąg znaków"Jan"
.- W przeciwieństwie do
char
,std::string
pozwala przechowywać całe ciągi znaków w podwójnych cudzysłowach ("
).
- Operacje na zmiennych znakowych:
letter = 'B';
– Zmieniamy wartość zmiennej znakowejletter
.std::cout << "Zmieniony znak: " << letter << std::endl;
– Wyświetlamy zaktualizowaną wartość zmiennej.
- Operacje na łańcuchach znaków:
- Konkatenacja:
std::string fullGreeting = greeting + " Mam na imię " + name + ".";
– Łączymy kilka ciągów znaków za pomocą operatora+
. - Dostęp do znaku:
name[0]
pozwala na uzyskanie dostępu do pierwszego znaku ciągu znakówname
. - Modyfikacja:
name[0] = 'P';
– Zmieniamy pierwszy znak ciągu znakówname
.
- Konkatenacja:
Program kończy się wypisaniem zmienionych wartości zmiennych oraz zwróceniem 0
, co oznacza pomyślne zakończenie programu.