c character conversion functions
Ten samouczek obejmuje funkcje konwersji znaków języka C ++, takie jak konwersja znaku na liczbę całkowitą lub ciąg znaków i tablicę znaków na ciąg z przykładami kodu:
W C ++, gdy tworzymy aplikacje obejmujące wiele typów, konieczna staje się konwersja z jednego typu na inny. W naszych wcześniejszych samouczkach widzieliśmy już kilka podstawowych konwersji typów.
Widzieliśmy również konwersje ciągów i konwersję typów liczbowych na ciągi. Oprócz funkcji konwersji ciągów, które już widzieliśmy, istnieje kilka funkcji, które służą do konwersji znaku na inne typy danych.
Są to funkcje, które pobierają pojedynczy znak lub tablicę znaków, a następnie konwertują je na inne typy danych.
=> Przeczytaj serię szkoleń Easy C ++.
Czego się nauczysz:
- Funkcje konwersji znaków C ++
- Wniosek
Funkcje konwersji znaków C ++
Jeśli chodzi o konwersję pojedynczego znaku na liczbę całkowitą lub łańcuch i konwersję tablicy znaków na łańcuch, funkcje konwersji nieznacznie różnią się od funkcji konwersji ciągów.
najlepsze rozszerzenie blokujące wyskakujące okienka dla Chrome
W tym samouczku omówimy następujące konwersje:
- Konwersja znaku na liczbę całkowitą (znak na int C ++)
- Konwersja znaku na ciąg (znak na ciąg C ++)
- Konwersja tablicy znaków na łańcuch
Pierwsze dwie konwersje dotyczą pojedynczego znaku, podczas gdy ostatnia konwersja dotyczy tablicy znaków.
Konwertuj znak na liczbę całkowitą - znak na int
Aby przekonwertować pojedynczy znak na typ całkowity, mamy dwie metody, jak podano poniżej:
# 1) Przesyłając
Możemy użyć operacji rzutowania, aby przekonwertować pojedynczy znak na jego całkowity odpowiednik. W takim przypadku zostanie wyświetlony odpowiednik znaku ASCII.
Rozważ następującą konwersję,
char a = 'A'; int num = (int) a;
W tym przypadku „num” będzie miał wartość 65, co jest odpowiednikiem znaku „A” w kodzie ASCII.
Alternatywnie możemy użyć następującej operacji, jeśli chcemy przekonwertować znak liczbowy na wartość całkowitą.
char a = '2'; int num = a-48;
Tutaj 48 jest wartością ASCII równą 0. To, co tutaj jest zrobione, to druga linia a-48 niejawnie konwertuje znak a na jego odpowiednik w ASCII, a następnie odejmuje ją od 48 (50-48), co daje w wyniku wartość całkowitą 2.
# 2) Korzystanie ze stringstream
Jak już pokazano w samouczku dotyczącym funkcji konwersji ciągów znaków, możemy przekonwertować pojedynczy znak reprezentowany jako obiekt typu stringstream na liczbę całkowitą lub dowolną wartość liczbową.
Poniżej podano kod, który to demonstruje.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Wynik:
Przekonwertowana wartość znaku 5: 5
Konwertuj znak na ciąg - znak na ciąg
Istnieje wiele sposobów konwersji pojedynczego znaku na ciąg.
Omówmy niektóre z tych metod.
# 1) Korzystanie z konstruktora dostarczonego przez klasę String.
Prototyp funkcji: string s (int n, char x);
Parametr (y):
n => Rozmiar ciągu do wygenerowania.
x => Znak, który ma zostać przekształcony w ciąg.
Wartość zwracana: s tring uzyskany przez konwersję charakteru.
Opis: Konstruktor klasy string przyjmuje jako parametry długość ciągu (n) i pojedynczy znak, a następnie konwertuje ten znak na łańcuch.
Poniżej podano prosty przykład pokazujący konwersję pojedynczego znaku na łańcuch.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Wynik:
Ciąg uzyskany przez konwersję pojedynczego znaku: A
Powyższa konwersja jest prosta. Wywołujemy konstruktor łańcuchowy i określamy długość ciągu (pierwszy parametr) jako 1, ponieważ konwertujemy pojedynczy znak, a drugim parametrem jest znak, który ma zostać przekształcony na łańcuch (w tym przypadku „A”).
# 2) Korzystanie z std :: string Operator = And + =
Operatory klas std :: string, = i + = są przeciążone dla znaków. Więc możemy użyć tych operatorów do konwersji pojedynczego znaku na łańcuch.
Pokazuje to poniższy program.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Wynik:
Ciąg otrzymany przez konwersję pojedynczego znaku: CB
W tym programie użyliśmy obu przeciążonych operatorów = i + =. Zadeklarowaliśmy obiekt typu string, a następnie przypisaliśmy mu znak za pomocą operatora =. Następnie używamy operatora + = i przypisujemy kolejny znak do obiektu string.
Widzimy, że za drugim razem znak jest faktycznie konkatenowany z już istniejącą zawartością obiektu string.
# 3) Używanie różnych metod std :: string
Klasa std :: string obsługuje różne przeciążone metody, za pomocą których możemy przekazać znak do ciągu, który ostatecznie konwertuje znak na łańcuch.
Oto niektóre z metod klasy std :: string:
- push_back
Prototyp funkcji: void push_back (char c)
Parametr (y): c => Znak, który ma zostać przypisany do łańcucha
Wartość zwracana: zwraca void
Opis: Ta funkcja jest przeciążona dla znaków i przypisuje znak do końca ciągu.
- dodać
Prototyp funkcji: string & append (size_t n, char c)
Parametr (y):
n => Liczba przypadków, w których znak ma zostać dołączony.
c => Znak, który ma zostać dołączony do ciągu.
Wartość zwracana: Ciąg uzyskany przez konwersję znaku.
Opis: Funkcja dołączania std :: string pobiera dwa argumenty. Pierwszy argument określa, ile razy znak ma zostać skopiowany do ciągu. Drugi argument to rzeczywisty znak do skopiowania. Zatem funkcja append przypisze te wiele kopii znaku do łańcucha, jak określono w pierwszym argumencie.
- przydzielać
Prototyp funkcji: string & przypisać (size_t n, char c);
Parametr (y):
n => Liczba kopii znaku.
c => Znak, który ma zostać skopiowany do łańcucha.
Wartość zwracana: Ciąg uzyskany przez konwersję znaku.
Opis: Funkcja Assign zamienia aktualną zawartość łańcucha na n (pierwszy argument) kopii znaku (drugi argument).
- wstawić
Prototyp funkcji: string & insert (size_t pos, size_t n, char c);
Parametr (y):
pos => Pozycja, na początku której mają zostać wstawione znaki.
n => Liczba kopii znaku.
c => Znak, który ma zostać wstawiony do ciągu.
Wartość zwracana: Ciąg uzyskany przez konwersję znaku.
Opis: Ta funkcja wstawia n (drugi argument) kopii znaku (trzeci argument) na początku łańcucha określonego przez pos (pierwszy argument).
Następnie stworzymy program demonstrujący wszystkie powyższe funkcje klasy std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Wynik:
push_back pojedynczy znak: A
dołącz pojedynczy znak: C
przypisz pojedynczy znak: D
wstaw pojedynczy znak: BD
Powyższy program demonstruje funkcje push_back, append, assign i insert. Dane wyjściowe pokazują wynik lub ciąg zwracany przez każdą funkcję.
# 4) Korzystanie z std :: stringstream
Omówiliśmy już konwersję typów liczbowych na łańcuch przy użyciu stringstream. Konwersja znaku na ciąg również podlega tej samej zasadzie, gdy używana jest klasa stringstream.
Podany znak jest wstawiany do strumienia, a następnie zawartość jest zapisywana w ciągu.
Wyjaśnijmy to, używając programu w C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Wynik:
Ciąg uzyskany przez konwersję pojedynczego znaku: A
Najpierw wstawiamy znak do obiektu stream, a następnie ten bufor jest zapisywany w obiekcie string. W ten sposób wyjście programu pokazuje zawartość obiektu łańcuchowego, który jest pojedynczym znakiem.
Konwertuj tablicę znaków na ciąg
Klasa std :: string ma wiele metod, które mogą się przydać podczas pracy z tablicami znaków. Dlatego wskazane jest przekonwertowanie tablic znaków na obiekty łańcuchowe, a następnie użycie ich, abyśmy mogli pisać wydajne programy.
Istnieją dwie metody konwersji tablicy znaków na ciąg, jak pokazano poniżej.
# 1) Korzystanie z konstruktora ciągów
Jak już wspomniano w przypadku konwersji pojedynczego znaku na łańcuch, możemy użyć konstruktora łańcuchów do konwersji tablicy znaków na łańcuch.
Prototyp funkcji: string (const char * s);
Parametry: s => tablica znaków zakończona znakiem null do przekonwertowania na łańcuch
Wartość zwracana: string => przekonwertowany ciąg
Opis: Ten przeciążony konstruktor klasy std :: string przyjmuje tablicę znaków lub ciąg znaków C jako argument i zwraca ciąg.
Poniższy program demonstruje tę konwersję.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Wynik:
Przekonwertowany ciąg: Pomoc do testowania oprogramowania
Powyższy program jest dość prosty. Wystarczy jedno wywołanie konstruktora std :: string, aby przekonwertować podaną tablicę znaków na łańcuch.
# 2) Using = Overloaded Operator
Innym podejściem do konwersji tablicy znaków na obiekt ciągu jest użycie przeciążonego operatora =. W ten sposób możemy bezpośrednio przypisać tablicę znaków do obiektu łańcuchowego za pomocą operatora =, a zawartość zostanie przekazana do łańcucha.
Poniższy przykład pokazuje to.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Wynik:
Przekonwertowany ciąg: Pomoc do testowania oprogramowania
Powyższy program przypisuje tablicę bezpośrednio do obiektu typu string za pomocą operatora =, co powoduje skopiowanie zawartości tablicy znaków do obiektu string.
Wniosek
Widzieliśmy różne metody konwersji pojedynczego znaku, a także tablic znaków na obiekty łańcuchowe. Ponieważ klasa std :: string ma wiele funkcji, które pozwalają nam efektywnie manipulować napisami, zawsze warto pracować z danymi znakowymi, konwertując je najpierw na łańcuchy.
Dalsza lektura = >> Konwertuj Char na Int w Javie
Dalsza lektura = >> Konwertuj znak znaków na ciąg w języku Java
Możemy również użyć metod klasowych do konwersji danych znakowych na łańcuchy. W tym przypadku najpierw wstawiamy dane do strumienia, a następnie zapisujemy ten bufor do obiektu typu string.
W naszych kolejnych samouczkach szczegółowo omówimy klasę stringstream i inne funkcje biblioteczne w C ++.
=> Zajrzyj tutaj, aby zobaczyć samouczki szkoleniowe od A do Z języka C ++.
rekomendowane lektury
- Funkcje łańcuchowe w Pythonie
- Ciąg w języku Java z buforem ciągów i samouczek dotyczący tworzenia ciągów
- Funkcje klasyfikacji i przekształcania znaków w języku C ++
- Funkcje ciągów VBScript: funkcje VBScript inStr, Replace, Mid i Trim
- Samouczek dotyczący dzielenia ciągów w Pythonie
- C # String Tutorial - Metody ciągów z przykładami kodu
- Ciągi w C ++ z przykładami
- Funkcje biblioteczne w C ++