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';– Zmiennaletterprzechowuje pojedynczy znak'A'.char digit = '5';– Zmiennadigitprzechowuje znak'5'.char symbol = '!';– Zmiennasymbolprzechowuje znak'!'.- W C++ zmienne typu
charprzechowują jeden znak w pojedynczych apostrofach (').
- Deklaracja i inicjalizacja zmiennych typu
std::string:std::string greeting = "Witaj, świecie!";– Zmiennagreetingprzechowuje ciąg znaków.std::string name = "Jan";– Zmiennanameprzechowuje ciąg znaków"Jan".- W przeciwieństwie do
char,std::stringpozwala 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.
