c character conversion functions
Tento tutoriál sa zaoberá funkciami prevodu znakov C ++, ako je prevod znaku na celé číslo alebo reťazec a pole znakov na reťazec s príkladmi kódu:
Pretože v C ++ vyvíjame aplikácie zahŕňajúce mnoho typov, je nevyhnutné prevádzať z jedného typu na druhý. V našich predchádzajúcich tutoriáloch sme už videli niekoľko konverzií základného typu.
Tiež sme videli konverzie reťazcov a konverzie numerických typov na reťazce. Okrem funkcií reťazcového prevodu, ktoré sme už videli, existuje niekoľko funkcií, ktoré sa používajú na prevod znaku na iné dátové typy.
Jedná sa o funkcie, ktoré berú jeden znak alebo pole znakov a potom ich prevádzajú na iné dátové typy.
=> Prečítajte si sériu školení Easy C ++.
Čo sa dozviete:
- Funkcie konverzie znakov C ++
- Záver
Funkcie konverzie znakov C ++
Pokiaľ ide o prevod jedného znaku na celé číslo alebo reťazec a prevod poľa znakov na reťazec, prevodné funkcie sa mierne menia od prevodných funkcií reťazcov.
samostatná implementácia hash tabuľky reťazenia v c ++
V tomto výučbe sa budeme zaoberať nasledujúcimi prevodmi:
- Konverzia znaku na celé číslo (char do int C ++)
- Konverzia znaku na reťazec (znak na reťazec C ++)
- Prevod poľa znakov na reťazec
Prvé dve konverzie sa zaoberajú jedným znakom, zatiaľ čo posledná konverzia zahŕňa pole znakov.
Convert Character To Integer - char to int
Ak chcete previesť jeden znak na celočíselný typ, máme dve metódy, ktoré sú uvedené nižšie:
# 1) Castingom
Pomocou operácie odliatia môžeme previesť jeden znak na jeho celočíselný ekvivalent. V takom prípade sa zobrazí ekvivalent znaku vo formáte ASCII.
Zvážte nasledujúcu konverziu,
char a = 'A'; int num = (int) a;
V takom prípade bude mať „num“ hodnotu 65, čo je ekvivalent ASCII znaku „A“.
Alternatívne môžeme použiť nasledujúcu operáciu, ak chceme previesť číselný znak na celočíselnú hodnotu.
char a = '2'; int num = a-48;
Tu je 48 hodnota ASCII rovna 0. Tu sa robí druhý riadok a-48, ktorý implicitne prevádza char a na jeho ekvivalent ASCII a potom ho odčíta od 48 (50-48), čo vedie k celočíselnej hodnote 2.
# 2) Používanie stringstream
Ako sme už videli v tutoriále o funkciách prevodu reťazcov, môžeme previesť jeden znak predstavovaný ako objekt reťazca na celé číslo alebo ľubovoľnú číselnú hodnotu.
Nižšie je uvedený kód, ktorý to demonštruje.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Výkon:
Prepočítaná hodnota znaku 5: 5
Convert Character To String - char to string
Existuje niekoľko spôsobov, ako môžeme previesť jeden znak na reťazec.
Poďme si predstaviť niektoré z týchto metód.
# 1) Použitie konštruktora poskytnutého triedou reťazcov.
Funkčný prototyp: reťazec s (int n, char x);
Parametre:
n => Veľkosť reťazca, ktorý sa má generovať.
x => Znak, ktorý sa má previesť na reťazec.
Návratová hodnota: s získaný konverziou znaku.
Popis: Konštruktor triedy reťazcov vezme ako parametre dĺžku reťazca (n) a jeden znak a potom prevedie znak na reťazec.
Ďalej je uvedený jednoduchý príklad na demonštráciu prevodu jedného znaku na reťazec.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Výkon:
Reťazec získaný konverziou jedného znaku: A
Vyššie uvedená konverzia je jednoduchá. Zavoláme konštruktor reťazca a zadáme dĺžku reťazca (prvý parameter) ako 1, pretože prevádzame jeden znak a druhým parametrom je znak, ktorý sa má previesť na reťazec (v tomto prípade „A“).
# 2) Použitie std :: string Operator = And + =
Operátory triedy std :: string, = a + = sú pre znaky preťažené. Tieto operátory teda môžeme použiť na prevod jedného znaku na reťazec.
To je demonštrované v nižšie uvedenom programe.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Výkon:
Reťazec získaný konverziou jedného znaku: CB
V tomto programe sme použili preťažené operátory = a + =. Vyhlásili sme reťazcový objekt a potom sme mu pomocou operátora = priradili znak. Ďalej použijeme operátor + = a objektu reťazca priradíme ďalší znak.
Vidíme, že druhýkrát sa znak skutočne zreťazí s už existujúcim obsahom v objekte reťazca.
# 3) Používanie rôznych metód std :: string
trieda std :: string podporuje rôzne preťažené metódy, pomocou ktorých môžeme odovzdať znak reťazcu, ktorý nakoniec prevedie znak na reťazec.
Niektoré z metód triedy std :: string sú:
- push_back
Funkčný prototyp: void push_back (char c)
Parametre: c => Znak, ktorý sa má priradiť k reťazcu
Návratová hodnota: vráti neplatné
Popis: Táto funkcia je pre znaky preťažená a priraďuje znak na koniec reťazca.
- pridať
Funkčný prototyp: string & append (size_t n, char c)
Parametre:
n => Počet pripojení znaku.
c => Znak, ktorý sa má pripojiť k reťazcu.
Návratová hodnota: Reťazec získaný konverziou znaku.
Popis: Pripojiť funkciu std :: string má dva argumenty. Prvý argument predstavuje počet pokusov o kopírovanie znaku do reťazca. Druhým argumentom je skutočný znak, ktorý sa má skopírovať. Funkcia append teda priradí toľko kópií znaku reťazcu, ako je uvedené v prvom argumente.
- priradiť
Funkčný prototyp: string & assign (size_t n, char c);
Parametre:
n => Počet kópií znaku.
c => Znak, ktorý sa má skopírovať do reťazca.
Návratová hodnota: Reťazec získaný konverziou znaku.
Popis: Funkcia Assign nahradí aktuálny obsah reťazca n (prvý argument) kópií znaku (druhý argument).
- vložiť
Funkčný prototyp: string & insert (size_t pos, size_t n, char c);
Parametre:
pos => Pozícia, na začiatok ktorej sa majú vložiť znaky.
n => Počet kópií znaku.
c => Znak, ktorý sa má vložiť do reťazca.
Návratová hodnota: Reťazec získaný konverziou znaku.
Popis: Táto funkcia vloží n (druhý argument) kópií znaku (tretí argument) na začiatočnú pozíciu reťazca určeného pos (prvý argument).
Ďalej vyvinieme program, ktorý demonštruje všetky vyššie uvedené funkcie triedy std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Výkon:
push_back jeden znak: A
pridať jeden znak: C
priraď jeden znak: D
vložiť jeden znak: BD
Vyššie uvedený program demonštruje funkcie push_back, append, assign a insert. Výstup zobrazuje výsledok alebo reťazec vrátený každou funkciou.
# 4) Použitie std :: stringstream
Už sme diskutovali o prevode numerických typov na reťazec pomocou stringstream. Rovnaký princíp sa pri použití triedy stringstream riadi aj pri prevode znaku na reťazec.
Daný znak sa vloží do streamu a potom sa obsah zapíše do reťazca.
Poďme to objasniť pomocou programu C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Výkon:
Reťazec získaný konverziou jedného znaku: A
Najskôr vložíme znak do objektu streamu a potom sa táto vyrovnávacia pamäť zapíše do reťazcového objektu. Výstup programu teda zobrazuje obsah reťazcového objektu, ktorý má jeden znak.
Preveďte pole znakov na reťazec
Trieda std :: string obsahuje veľa metód, ktoré sa môžu hodiť pri práci s poliami znakov. Preto je vhodné previesť polia znakov na reťazcové objekty a potom ich použiť na to, aby sme mohli písať efektívne programy.
Existujú dva spôsoby, ako previesť pole znakov na reťazec, ako je uvedené nižšie.
# 1) Použitie reťazcového konštruktora
Ako už bolo uvedené pri prevode jedného znaku na reťazec, môžeme na prevedenie poľa znakov na reťazec použiť reťazcový konštruktor.
Funkčný prototyp: string (const char * s);
Parametre: s => nulové zakončené pole znakov, ktoré sa má previesť na reťazec
Návratová hodnota: string => prevedeny retazec
Popis: Tento preťažený konštruktor triedy std :: string vezme pole znakov alebo reťazec C ako argument a vráti reťazec.
Nasledujúci program demonštruje túto konverziu.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Výkon:
Prevedený reťazec: Pomocník pre testovanie softvéru
Vyššie uvedený program je dosť jednoduchý. Stačí iba jedno volanie konštruktoru std :: string na konverziu daného znakového poľa na reťazec.
# 2) Použitie = Preťažený operátor
Ďalším prístupom k prevodu znakového poľa na reťazcový objekt je použitie preťaženého operátora =. V tomto môžeme priamo priradiť pole znakov k objektu reťazca pomocou operátora = a obsah sa odovzdá reťazcu.
Ukazuje to nasledujúci príklad.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Výkon:
Prevedený reťazec: Pomocník pre testovanie softvéru
Vyššie uvedený program priradí pole priamo k objektu reťazca pomocou operátora =, čo má za následok kopírovanie obsahu poľa znakov do objektu reťazca.
Záver
Videli sme rôzne metódy na prevod jedného znaku, ako aj polí znakov na reťazcové objekty. Pretože trieda std :: string má veľa funkcií, ktoré nám umožňujú efektívne manipulovať s reťazcami, je vždy užitočné pracovať s údajmi znakov tak, že ich najskôr prevedieme na reťazce.
Ďalšie čítanie = >> Preveďte Char na Int v Jave
Ďalšie čítanie = >> Preveďte Char na reťazec v Jave
Môžeme tiež použiť metódy triedy na prevod údajov znakov na reťazce. V tomto najskôr vložíme údaje do streamu a potom tento buffer zapíšeme do reťazcového objektu.
V našich ďalších tutoriáloch si podrobne rozoberieme triedu stringstream a ďalšie knižničné funkcie v C ++.
=> Ak chcete vidieť A-Z výučbových kurzov C ++, kliknite sem.
Odporúčané čítanie
- Funkcie reťazca Python
- Výukový program Java String s programom String Buffer a String Builder
- Funkcie klasifikácie a transformácie znakov C ++
- Funkcie reťazca VBScript: VBScript funkcie inStr, Replace, Mid a Trim
- Výukový program pre rozdelenie reťazcov Python
- C # String Tutorial - Metódy reťazcov s príkladmi kódu
- Reťazce v C ++ s príkladmi
- Funkcie knižnice v C ++