c character conversion functions
Ta vadnica zajema funkcije pretvorbe znakov C ++, kot so pretvorba znaka v celo število ali niz in niz znakov v niz s primeri kode:
Ko v C ++ razvijamo aplikacije, ki vključujejo številne tipe, je treba pretvoriti iz ene vrste v drugo. V naših prejšnjih vajah smo že videli nekaj osnovnih pretvorb tipa.
Opazili smo tudi pretvorbo nizov in pretvorbo številskih vrst v nize. Poleg funkcij pretvorbe nizov, ki smo jih že videli, obstaja nekaj funkcij, ki se uporabljajo za pretvorbo znaka v druge podatkovne vrste.
To so funkcije, ki zavzamejo en sam znak ali matriko in jih nato pretvorijo v druge podatkovne tipe.
=> Preberite serijo Easy C ++ Training Series.
Kaj se boste naučili:
- Funkcije pretvorbe znakov C ++
- Zaključek
Funkcije pretvorbe znakov C ++
Ko gre za pretvorbo enega znaka v celo število ali niz in pretvorbo matrike znakov v niz, se funkcije pretvorbe nekoliko spremenijo kot funkcije pretvorbe nizov.
pretvori znak v int c ++
V tej vadnici bomo obravnavali naslednje pretvorbe:
- Pretvorba znaka v celo število (char v int C ++)
- Pretvorba znaka v niz (char v niz C ++)
- Pretvorba nizov znakov v niz
Prvi dve pretvorbi obravnavata en sam znak, zadnja pretvorba pa vključuje niz znakov.
Pretvori znak v celo število - char v int
Za pretvorbo enega znaka v celoštevilsko vrsto imamo dve metodi, kot je navedeno spodaj:
# 1) Z oddajo
Z operacijo oddajanja lahko en znak pretvorimo v njegov celoštevilčni ekvivalent. V tem primeru bo prikazan ekvivalent ASCII znaka.
Razmislite o naslednji pretvorbi,
char a = 'A'; int num = (int) a;
V tem primeru bo 'num' imel vrednost 65, ki je ASCII ekvivalent znaku 'A'.
Lahko pa uporabimo naslednjo operacijo, če želimo pretvoriti številčni znak v celoštevilčno vrednost.
char a = '2'; int num = a-48;
Tu je 48 ASCII vrednost 0. Kar naredimo tukaj, je druga vrstica a-48 implicitno pretvori char a v njen ekvivalent ASCII in jo nato odšteje od 48 (50-48), kar ima za posledico celoštevilčno vrednost 2.
# 2) Uporaba nizov
Kot smo že videli v vadnici o funkcijah pretvorbe nizov, lahko en znak, predstavljen kot objekt niza nizov, pretvorimo v celo število ali katero koli številsko vrednost.
Spodaj je koda, ki to dokazuje.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Izhod:
Pretvorjena vrednost znaka 5: 5
Pretvori znak v niz - znak v niz
Obstajajo različni načini, s katerimi lahko en znak pretvorimo v niz.
Pogovorimo se o nekaterih teh metodah.
# 1) Uporaba konstruktorja, ki ga zagotavlja razred nizov.
Prototip funkcije: niz s (int n, char x);
Parameter (-i):
n => Velikost niza, ki bo ustvarjen.
x => Znak, ki naj se pretvori v niz.
Vrnjena vrednost: s tring, pridobljen s pretvorbo znaka.
Opis: Konstruktor razreda niz kot parametra vzame dolžino niza (n) in en znak, nato pa znak pretvori v niz.
Spodaj je prikazan preprost primer za prikaz pretvorbe enega znaka v niz.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Izhod:
Niz, pridobljen s pretvorbo enega znaka: A
Zgornja pretvorba je preprosta. Pokličemo konstruktor niza in določimo dolžino niza (prvi parameter) kot 1, saj pretvarjamo en sam znak, drugi parameter pa je znak, ki ga je treba pretvoriti v niz (v tem primeru 'A').
# 2) Uporaba std :: string Operator = In + =
Operatorja razreda std :: string, = in + = sta preobremenjena za znake. Tako lahko te operatorje uporabimo za pretvorbo enega znaka v niz.
To dokazuje spodnji 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 : '< Izhod:
Niz, pridobljen s pretvorbo enega znaka: CB
V tem programu smo uporabili tako preobremenjena operaterja, = in + =. Deklarirali smo nizni objekt in mu nato z operatorjem = dodelili znak. Nato uporabimo operator + = in predmetu niza dodelimo drug znak.
Vidimo, da se drugič lik dejansko poveže z že obstoječo vsebino v nizu.
# 3) Uporaba različnih metod std :: string
Razred std :: string podpira različne preobremenjene metode, s pomočjo katerih lahko prenesemo znak v niz, ki na koncu pretvori znak v niz.
Nekatere metode razreda std :: string so:
- porini nazaj
Prototip funkcije: void push_back (char c)
Parameter (-i): c => Znak, ki bo dodeljen nizu
Vrnjena vrednost: vrne praznino
Opis: Ta funkcija je preobremenjena za znake in na koncu niza dodeli znak.
- priloži
Prototip funkcije: niz & dodaj (size_t n, char c)
Parameter (-i):
n => Kolikokrat je treba dodati znak.
c => Znak, ki ga je treba dodati nizu.
Vrnjena vrednost: Niz, pridobljen s pretvorbo znaka.
Opis: Funkcija dodajanja funkcije std :: string ima dva argumenta. Prvi argument je število kopij znaka v niz. Drugi argument je dejanski znak, ki ga želite kopirati. Torej bo funkcija append nizu dodelila toliko kopij znakov, kot je določeno v prvem argumentu.
- dodeliti
Prototip funkcije: niz & dodeli (size_t n, char c);
Parameter (-i):
n => Število kopij znaka.
c => Znak, ki ga želite kopirati v niz.
Vrnjena vrednost: Niz, pridobljen s pretvorbo znaka.
Opis: Funkcija dodelitve nadomesti trenutno vsebino niza z n (prvi argument) kopij znaka (drugi argument).
- vstavi
Prototip funkcije: niz & vstavi (size_t poz, size_t n, char c);
Parameter (-i):
pos => Položaj, na začetku katerega znake je treba vstaviti.
n => Število kopij znaka.
c => Znak, ki ga je treba vstaviti v niz.
Vrnjena vrednost: Niz, pridobljen s pretvorbo znaka.
Opis: Ta funkcija vstavi n (drugi argument) kopij znaka (tretji argument) na začetni položaj niza, določenega s pos (prvi argument).
Nato bomo razvili program, ki prikazuje vse zgornje funkcije razreda std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Izhod:
push_back en znak: A
pripiši en sam znak: C
dodeli en znak: D
vstavi en znak: BD
Zgornji program prikazuje funkcije push_back, dodajanje, dodeljevanje in vstavljanje. Rezultat prikazuje rezultat ali niz, ki ga vrne vsaka funkcija.
# 4) Uporaba std :: stringstream
Že smo razpravljali o pretvorbi številskih tipov v niz z uporabo niza. Pretvorba znaka v niz sledi tudi istemu principu, kadar se uporablja razred niza.
Dani znak se vstavi v tok, nato pa se vsebina zapiše v niz.
Naj to pojasnimo s pomočjo programa C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Izhod:
Niz, pridobljen s pretvorbo enega samega znaka: A
Najprej vstavimo znak v objekt toka, nato pa se ta medpomnilnik zapiše v objekt niza. Tako rezultat programa prikazuje vsebino predmeta string, ki je en sam znak.
Pretvori niz znakov v niz
Razred std :: string ima veliko metod, ki so vam lahko v pomoč pri obravnavi nizov znakov. Zato je priporočljivo, da niz znakov pretvorimo v nize in jih nato uporabimo, da lahko pišemo učinkovite programe.
Obstajata dva načina za pretvorbo nizov znakov v niz, kot je prikazano spodaj.
# 1) Uporaba konstruktorja nizov
Kot smo že omenili za pretvorbo enega znaka v niz, lahko za pretvorbo nizov znakov v niz uporabimo konstruktor nizov.
Prototip funkcije: niz (const char * s);
Parametri: s => ničelno niz znakov, ki se pretvori v niz
Vrnjena vrednost: string => pretvorjeni niz
Opis: Ta preobremenjeni konstruktor razreda std :: string vzame matriko znakov ali niz C kot argument in vrne niz.
Naslednji program prikazuje to pretvorbo.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Izhod:
Pretvorjeni niz: Pomoč za testiranje programske opreme
Zgornji program je povsem preprost. Potreben je le en klic konstruktorju std :: string za pretvorbo danega polja znakov v niz.
# 2) Uporaba = Preobremenjeni operater
Drug pristop za pretvorbo nizov znakov v objekt niza je uporaba preobremenjenega operatorja =. Pri tem lahko z nizom operatorja = dodelimo niz znakov predmetu string in vsebina bo posredovana nizu.
Naslednji primer to kaže.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Izhod:
Pretvorjeni niz: Pomoč za testiranje programske opreme
Zgornji program matriko dodeli elementu niza z uporabo operatorja =, zaradi česar se vsebina matrike znakov kopira v objekt niza.
Zaključek
Videli smo različne metode za pretvorbo enega samega znaka in nizov znakov v predmete niza. Ker ima razred std :: string veliko funkcij, ki nam omogočajo učinkovito manipulacijo z nizi, je vedno koristno delati s podatki znakov, tako da jih najprej pretvorimo v nize.
Nadaljnje branje = >> Pretvorite Char v Int v Javi
Nadaljnje branje = >> Pretvori Char v String v Javi
Za pretvorbo znakovnih podatkov v nize lahko uporabimo tudi metode razredov. Pri tem najprej vstavimo podatke v tok in nato vmesnik zapišemo v nizni objekt.
V naslednjih vajah bomo podrobno obravnavali razred nizov in več knjižničnih funkcij v jeziku C ++.
=> Tukaj si oglejte A-Z vadnic za usposabljanje za C ++.
Priporočeno branje
- Funkcije niza Python
- Java String z vmesnikom String Buffer in String Builder
- Funkcije klasifikacije in preoblikovanja znakov C ++
- Funkcije niza VBScript: funkcije VBScript inStr, zamenjava, sredina in obrezovanje
- Vadnica za delitev nizov Python
- C # Vadnica za niz - String metode s primeri kode
- Strune v jeziku C ++ z primeri
- Knjižnične funkcije v jeziku C ++