C++ Typ danych Char z przykładami
Co to jest Char?
Char jest C++ typ danych przeznaczony do przechowywania liter. Char to skrót od znaku alfanumerycznego. Jest to typ danych całkowitych, co oznacza, że wartość jest przechowywana jako liczba całkowita. Typ char zajmuje pamięć o rozmiarze 1 bajtu. Przechowuje również pojedynczy znak.
Co to jest ASCII?
Wartość char jest interpretowana jako znak ASCII. Jest to podobne do sposobu, w jaki wartości boolowskie są interpretowane jako prawda lub fałsz. ASCII to akronim od American Standard Code for Information Interchange. Definiuje on konkretny sposób przedstawiania znaków angielskich jako liczb.
Numery mieszczą się w przedziale od 0 do 127. Na przykład znak „a” odpowiada kodowi ASCII 97.
Deklaracja Char
Aby zadeklarować A zmienna char w C++, używamy słowa kluczowego char. Po tym należy podać nazwę zmiennej. Zmienną można zainicjować w momencie deklaracji. Wartość zmiennej powinna być ujęta w pojedynczy cudzysłów.
Składnia
Oto składnia deklaracji char w C++:
char variable-name;
Nazwa-zmiennej to nazwa, która ma zostać przypisana zmiennej.
Jeśli w momencie deklaracji ma zostać przypisana wartość, można zastosować następującą składnię:
char variable-name = 'value';
- Nazwa zmiennej to nazwa zmiennej char.
- Wartość to wartość, która ma zostać przypisana do zmiennej char.
1 przykład:
#include <iostream> using namespace std; int main() { char grade = 'B'; cout << "I scored a: "<<grade; return 0; }
Wyjście:
Oto zrzut ekranu kodu:
Wyjaśnienie kodu:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
- Włączenie przestrzeni nazw std do naszego kodu, aby móc korzystać z jej klas bez wywoływania jej.
- Wywołanie funkcji main(). Logikę programu należy dodać w treści tej funkcji.
- Zadeklaruj zmienną znakową o nazwie grade. Zmiennej również przypisano wartość B. Zwróć uwagę, że wartość zmiennej jest ujęta w pojedynczy cudzysłów.
- Wydrukuj wartość zmiennej oceny wraz z innym tekstem na konsoli.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
Drukowanie wartości ASCII
Jak stwierdzono powyżej, każdy znak jest interpretowany jako znak ASCII. Możliwe jest uzyskanie wartości ASCII dowolnego znaku. Po prostu przekazujesz znak do funkcji int(). Proces ten nazywa się rzutowaniem typów. Zademonstrujmy to:
2 przykład:
#include <iostream> using namespace std; int main() { char ch; cout << "Enter any character: "; cin >> ch; cout << "The ASCII Value of " << ch << " is " << int(ch); return 0; }
Wyjście:
Oto zrzut ekranu kodu:
Wyjaśnienie kodu:
- Dołączenie pliku nagłówkowego iostream do naszego kodu w celu wykorzystania jego funkcji.
- Dołączenie przestrzeni nazw std do naszego kodu, aby móc korzystać z jej klas bez wywoływania jej.
- Wywołanie funkcji main(). Logikę programu należy dodać w treści tej funkcji.
- Zadeklaruj zmienną char o nazwie ch.
- Wydrukuj tekst na konsoli. Tekst prosi użytkownika o wprowadzenie wartości zmiennej ch.
- Odczytaj dane wprowadzone przez użytkownika z klawiatury i zapisz je w zmiennej ch.
- Wydrukuj tekst na konsoli. Tekst będzie zawierał znak wprowadzony dla zmiennej ch, wartość ASCII tego znaku i inny tekst.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
Drukowanie wartości znaku
Biorąc pod uwagę wartość ASCII, C++ kompilator może zwrócić odpowiedni znak. Deklarujesz zmienną char i przypisujesz jej wartość całkowitą. Zostanie ona przekonwertowana na odpowiednią wartość znakową.
3 przykład:
#include <iostream> using namespace std; int main() { char x = 64, y = 66, z = 71; cout << x; cout << y; cout << z; return 0; }
Wyjście:
Oto zrzut ekranu kodu:
Wyjaśnienie kodu:
- Dołącz plik nagłówkowy iostream do kodu. Będziemy wtedy korzystać z jego funkcji bez popełniania błędów.
- Dołącz przestrzeń nazw std do kodu. Będziemy używać jego klas bez wywoływania go.
- Wywołanie funkcji main(). Logika programu powinna znaleźć się w treści tej funkcji.
- Zadeklaruj trzy zmienne char x, y i z. Tym trzem przypisano wartości całkowite 65, 66 i 67. Będą one traktowane jako wartości ASCII dla znaków.
- Wydrukuj wartość zmiennej x na konsoli. Ponieważ x zostało zadeklarowane jako znak, zwrócony zostanie znak o wartości ASCII wynoszącej 65, czyli A.
- Wydrukuj wartość zmiennej y na konsoli. Ponieważ y zostało zadeklarowane jako znak, zwrócony zostanie znak o wartości ASCII wynoszącej 66, czyli B.
- Wydrukuj wartość zmiennej z na konsoli. Ponieważ z zostało zadeklarowane jako znak, zwrócony zostanie znak o wartości ASCII wynoszącej 67, czyli C.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
Wprowadzanie znaków
Możemy użyć funkcji std::cin, aby odczytać znak wprowadzony przez użytkownika za pomocą klawiatury. Funkcja std::cin pozwoli Ci wprowadzić wiele znaków. Jednak zmienna znaku może przechowywać tylko jeden znak. Oznacza to, że tylko pierwszy wprowadzony znak zostanie wyodrębniony i zapisany w zmiennej znaku. Reszta pozostanie w buforze używanym przez std::cin. Aby go wyodrębnić, wykonaj kolejne wywołania do funkcji std::cin.
4 przykład:
#include <iostream> using namespace std; int main() { cout << "Type a sequence of characters: "; char ch; cin >> ch; cout <<"The ASCII code of "<< ch << " is "<< int(ch) << '\n'; cin >> ch; cout <<"The ASCII code of " << ch << " is "<< int(ch) << '\n'; return 0; }
Wyjście:
Oto zrzut ekranu kodu:
Wyjaśnienie kodu:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
- Wywołanie funkcji main(). Logikę programu należy dodać w treści tej funkcji.
- Wydrukuj tekst na konsoli.
- Zadeklaruj zmienną znakową o nazwie ch.
- Odczytaj dane wprowadzone przez użytkownika z klawiatury. Dane wejściowe zostaną zapisane w zmiennej ch. Ponieważ użytkownik wpisze sekwencję znaków, taką jak abc, tylko pierwszy znak, a, zostanie zapisany w zmiennej ch.
- Drukowanie pierwszego wprowadzonego znaku, jego kodu ASCII i innego tekstu na konsoli. Kod ASCII jest określany poprzez przekazanie zmiennej znakowej do funkcji int().
- Przeczytaj kolejny znak wprowadzony przez użytkownika. Użytkownik nie będzie musiał wprowadzać nowego znaku. Zamiast tego odczyta drugi wprowadzony znak, czyli b.
- Drukowanie drugiego wprowadzonego znaku, jego kodu ASCII i innego tekstu na konsoli. Kod ASCII jest określany poprzez przekazanie zmiennej znakowej do funkcji int().
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
Konwersja znaku na ciąg
Istnieje wiele sposobów konwersji znaków na smyczki.
Omówmy je:
#1: Używanie konstruktora podanego przez klasę String
Można to zrobić, używając następującej składni:
string st(int n,char x);
Parametr n oznacza rozmiar ciągu, który ma zostać wygenerowany.
Parametr x to znak, który ma zostać przekonwertowany na ciąg znaków.
Funkcja zwraca ciąg.
5 przykład:
#include<iostream> #include <string> using namespace std; int main() { string st(1, 'C'); cout << "The resulting string is : " << st; return 0; }
Wyjście:
Oto zrzut ekranu kodu:
Wyjaśnienie kodu:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz plik nagłówkowy ciągu znaków do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
- Wywołanie funkcji main(). Logikę programu należy dodać w treści tej funkcji.
- Przekonwertuj znak „C” na ciąg o długości 1 i przypisz wynikowy ciąg do zmiennej st.
- Wydrukuj wartość ciągu st na konsoli wraz z innym tekstem.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
#2) Używanie std::string Operators = i +=
Operatory = i += są już przeciążone znakami. Oba mogą być użyte do konwersji konkretnego znaku na ciąg.
6 przykład:
#include<iostream> #include <string> using namespace std; int main() { string st; char b = 'B'; st = 'A'; st += b; cout << "The resulting string is : " << st; return 0; }
Wyjście:
Oto zrzut ekranu kodu:
Wyjaśnienie kodu:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz plik nagłówkowy ciągu znaków do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
- Wywołanie funkcji main(). Logikę programu należy dodać w treści tej funkcji.
- Utwórz zmienną łańcuchową o nazwie st.
- Utwórz postać o nazwie b i wartości B.
- Przypisz wartość A do ciągu o nazwie st.
- Użyj operatora +=, aby zamienić znaki na ciąg.
- Wydrukuj wartość ciągu st na konsoli wraz z innym tekstem.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
#3: Używanie metod std::string
Klasa std::string zawiera wiele przeciążonych funkcji, które mogą pomóc w konwersji znaków na ciągi znaków.
Obejmują one:
- push_back Ta funkcja przypisuje konkretny znak do końca ciągu. Jest przeciążona dla znaków. Przyjmuje następującą składnię:
void push_back(char ch)
Parametr ch jest znakiem, który ma zostać zamieniony na ciąg znaków.
- dodać Przypisuje wiele kopii określonego znaku do ciągu. Funkcja ta przyjmuje następującą składnię:
string& append(size_t n,char ch)
Parametr n oznacza, ile razy znak będzie dodawany.
Parametr ch jest znakiem, który należy dołączyć do łańcucha.
- przydzielać Ta funkcja zastępuje bieżącą zawartość ciągu n kopiami określonego znaku. Używa następującej składni:
string& assign(size_t n,char ch);
Parametr n oznacza całkowitą liczbę kopii znaku.
Parametr ch jest znakiem, który należy skopiować do ciągu.
- wstawić Funkcja insert wstawia n kopii znaku na pozycję początkową ciągu, określoną w argumentach. Przyjmuje następującą składnię:
string& insert(size_t p,size_t n,char ch);
Parametr p oznacza pozycję od początku, w której będą wstawiane znaki.
Parametr n oznacza całkowitą liczbę kopii znaku.
Parametr ch jest znakiem, który ma zostać wstawiony w ciągu.
7 przykład:
#include<iostream> #include <string> using namespace std; int main() { string st; st.push_back('A'); cout << "push_back A returns : " << st << endl; st = ""; st.append(1, 'C'); cout << "append C returns : " << st << endl; st = ""; st.assign(1, 'D'); cout << "assign D returns : " << st << endl; st.insert(0, 1, 'E'); cout << "insert single character returns : " << st << endl; return 0; }
Wyjście:
Oto zrzut ekranu kodu:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz plik nagłówkowy ciągu znaków do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
- Wywołanie funkcji main(). Logikę programu należy dodać w treści tej funkcji.
- Utwórz zmienną łańcuchową o nazwie st.
- Przypisz znak A na końcu ciągu.
- Wydrukuj wartość ciągu st na konsoli wraz z innym tekstem. Endl (linia końcowa) przesuwa kursor do następnej linii.
- Ustaw wartość ciągu st na pustą.
- Przypisz pojedynczy znak C do ciągu o nazwie st.
- Wydrukuj wartość ciągu st na konsoli wraz z innym tekstem. Endl (linia końcowa) przesuwa kursor do następnej linii.
- Ustaw wartość ciągu st na pustą.
- Zastąp zawartość ciągu st pojedynczym znakiem D.
- Wydrukuj wartość ciągu st na konsoli wraz z innym tekstem. Endl (linia końcowa) przesuwa kursor do następnej linii.
- Wstaw pojedynczy znak E do ciągu o nazwie st z jego pierwszego indeksu.
- Wydrukuj wartość ciągu st na konsoli wraz z innym tekstem. Endl (linia końcowa) przesuwa kursor do następnej linii.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
#4: Używanie std::stringstream
Aby użyć tej klasy do konwersji znaku na ciąg znaków, wstaw znak do strumienia.
Zostaną zapisane w ciągu.
8 przykład:
#include<iostream> #include <string> #include <sstream> using namespace std; int main() { string st; stringstream myst; myst << 'A'; myst >> st; cout << "The conversion of the single character returns the string: " << st; return 0; }
Wyjście:
Oto zrzut ekranu kodu:
Wyjaśnienie kodu:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz plik nagłówkowy ciągu znaków do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz plik nagłówkowy sstream do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
- Wywołanie funkcji main(). Logikę programu należy dodać w treści tej funkcji.
- Utwórz zmienną łańcuchową o nazwie st.
- Utwórz zmienną strumienia o nazwie myst.
- Wstaw znak A do obiektu strumieniowego o nazwie myst.
- Konwertuj obiekt strumienia na ciąg.
- Wydrukuj wartość ciągu st na konsoli wraz z innym tekstem. Endl (linia końcowa) przesuwa kursor do następnej linii.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- Koniec treści funkcji main().
Podsumowanie
- Char to a C++ typ danych używany do przechowywania liter.
- C++ Char jest integralnym typem danych, co oznacza, że wartość jest przechowywana jako liczba całkowita.
- Zajmuje wielkość pamięci 1 bajt.
- C++ Char przechowuje tylko pojedynczy znak.
- Wartości Char są interpretowane jako znaki ASCII.
- ASCII jest akronimem amerykańskiego standardowego kodu wymiany informacji.
- Określa ona specyficzny sposób przedstawiania znaków języka angielskiego w postaci liczb.
- Aby zobaczyć wartość ASCII znaku, przekazujemy ją do funkcji int().
- Aby zobaczyć odpowiednią wartość char wartości ASCII, definiujemy ASCII jako znak.