c character conversion functions
Tento výukový program zahrnuje funkce převodu znaků C ++, jako je převod znaku na celé číslo nebo řetězec a znakové pole na řetězec s příklady kódu:
Protože v C ++ vyvíjíme aplikace zahrnující mnoho typů, je nutné převádět z jednoho typu na jiný. V našich dřívějších výukových programech jsme již viděli několik základních typů převodu.
Také jsme viděli převody řetězců a převody číselných typů na řetězce. Kromě funkcí převodu řetězců, které jsme již viděli, existuje několik funkcí, které se používají k převodu znaku na jiné datové typy.
Jedná se o funkce, které berou jeden znak nebo pole znaků a poté je převádějí na jiné datové typy.
=> Přečtěte si sérii školení Easy C ++.
Co se naučíte:
- Funkce převodu znaků v C ++
- Závěr
Funkce převodu znaků v C ++
Pokud jde o převod jednoho znaku na celé číslo nebo řetězec a převod pole znaků na řetězec, funkce převodu se mírně změní od funkcí převodu řetězce.
nejlepší software pro opravu PC pro Windows 10
V tomto kurzu probereme následující převody:
- Převod znaků na celé číslo (char na int C ++)
- Převod znaku na řetězec (znak na řetězec C ++)
- Převod pole znaků na řetězec
První dva převody se zabývají jedním znakem, zatímco poslední převod zahrnuje pole znaků.
Convert Character To Integer - char to int
Chcete-li převést jeden znak na celočíselný typ, máme dvě metody, jak je uvedeno níže:
# 1) Odesláním
Můžeme použít operaci přetypování k převodu jednoho znaku na jeho celočíselný ekvivalent. V takovém případě se zobrazí ASCII ekvivalent znaku.
Zvažte následující převod,
char a = 'A'; int num = (int) a;
V tomto případě bude mít „num“ hodnotu 65, což je ekvivalent ASCII znaku „A“.
Alternativně můžeme použít následující operaci, pokud chceme převést číselný znak na celočíselnou hodnotu.
char a = '2'; int num = a-48;
Zde je 48 hodnota ASCII 0. Co se zde dělá, druhý řádek a-48 implicitně převádí char na svůj ekvivalent ASCII a poté jej odečte od 48 (50-48), což má za následek celočíselnou hodnotu 2.
# 2) Používání stringstream
Jak již bylo vidět v tutoriálu o funkcích převodu řetězců, můžeme převést jeden znak reprezentovaný jako objekt řetězce na celé číslo nebo jakoukoli číselnou hodnotu.
Níže je uveden kód, který to dokazuje.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Výstup:
Převedená hodnota znaku 5: 5
Převést znak na řetězec - znak na řetězec
Existuje několik způsobů, jak můžeme převést jeden znak na řetězec.
Pojďme diskutovat o některých z těchto metod.
# 1) Použití konstruktoru poskytovaného třídou String.
Funkční prototyp: řetězec s (int n, char x);
Parametry:
n => Velikost generovaného řetězce.
x => Znak, který má být převeden na řetězec.
Návratová hodnota: s tring získaný převodem znaků.
Popis: Konstruktor třídy řetězce vezme délku řetězce (n) a jeden znak jako parametry a poté převede znak na řetězec.
Níže je uveden jednoduchý příklad demonstrace převodu jednoho znaku na řetězec.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Výstup:
Řetězec získaný převodem jednoho znaku: A.
Výše uvedená konverze je jednoduchá. Zavoláme konstruktor řetězce a zadáme délku řetězce (první parametr) jako 1, protože převádíme jeden znak a druhým parametrem je znak, který se má převést na řetězec (v tomto případě „A“).
# 2) Použití std :: string Operator = And + =
Operátory třídy std :: string, = a + = jsou přetíženy pro znaky. Můžeme tedy použít tyto operátory k převodu jednoho znaku na řetězec.
To je ukázáno v programu uvedeném níže.
#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ýstup:
Řetězec získaný převodem jednoho znaku: CB
V tomto programu jsme použili přetížené operátory = a + =. Deklarovali jsme řetězcový objekt a poté jsme mu pomocí operátoru = přiřadili znak. Dále použijeme operátor + = a objektu řetězce přiřadíme další znak.
Vidíme, že podruhé se postava ve skutečnosti zřetězí s již existujícím obsahem v řetězcovém objektu.
# 3) Použití různých metod std :: string
třída std :: string podporuje různé přetížené metody, pomocí kterých můžeme předat znak do řetězce, který nakonec převede znak na řetězec.
Některé z metod třídy std :: string jsou:
- zatlačit zpátky
Funkční prototyp: void push_back (char c)
Parametry: c => Znak, který má být přiřazen řetězci
Návratová hodnota: vrátí neplatnost
Popis: Tato funkce je u znaků přetížena a přiřadí znak na konec řetězce.
- připojit
Funkční prototyp: string & append (size_t n, char c)
Parametry:
n => Kolikrát má být znak připojen.
c => Znak, který má být připojen k řetězci.
Návratová hodnota: Řetězec získaný převodem znaků.
Popis: Funkce přidání std :: string má dva argumenty. První argument udává, kolikrát má být znak zkopírován do řetězce. Druhým argumentem je skutečný znak, který se má zkopírovat. Funkce append tedy přiřadí těch mnoho kopií znaků řetězci, jak je uvedeno v prvním argumentu.
- přiřadit
Funkční prototyp: string & assign (size_t n, char c);
Parametry:
n => Počet kopií postavy.
c => Znak, který má být zkopírován do řetězce.
Návratová hodnota: Řetězec získaný převodem znaků.
Popis: Funkce Assign nahradí aktuální obsah řetězce n (první argument) kopií znaku (druhý argument).
- vložit
Funkční prototyp: string & insert (size_t pos, size_t n, char c);
Parametry:
pos => Poloha, na začátek které se mají vkládat znaky.
n => Počet kopií postavy.
c => Znak, který má být vložen do řetězce.
Návratová hodnota: Řetězec získaný převodem znaků.
Popis: Tato funkce vloží n (druhý argument) kopií znaku (třetí argument) na počáteční pozici řetězce určeného pos (první argument).
Dále vyvineme program, který demonstruje všechny výše uvedené funkce třídy std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Výstup:
push_back jeden znak: A
připojit jeden znak: C
přiřadit jeden znak: D
vložte jeden znak: BD
Výše uvedený program demonstruje funkce push_back, append, assign a insert. Výstup ukazuje výsledek nebo řetězec vrácený každou funkcí.
# 4) Pomocí std :: stringstream
Již jsme diskutovali o převodu numerických typů na řetězec pomocí stringstream. Převod znaku na řetězec se také řídí stejným principem, když se používá třída stringstream.
Daný znak se vloží do streamu a poté se obsah zapíše do řetězce.
Pojďme si to ujasnit pomocí 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ýstup:
Řetězec získaný převodem jednoho znaku: A.
Nejprve vložíme znak do objektu streamu a poté se tato vyrovnávací paměť zapíše do objektu řetězce. Výstup programu tedy zobrazuje obsah objektu řetězce, který má jeden znak.
Převést pole znaků na řetězec
Třída std :: string má mnoho metod, které se mohou hodit při práci s poli znaků. Proto je vhodné převést pole znaků na řetězcové objekty a poté je použít, abychom mohli psát efektivní programy.
Existují dvě metody převodu pole znaků na řetězec, jak je znázorněno níže.
# 1) Použití String Constructor
Jak již bylo uvedeno pro převod jednoho znaku na řetězec, můžeme použít řetězcový konstruktor k převodu pole znaků na řetězec.
Funkční prototyp: řetězec (const char * s);
Parametry: s => nulové zakončené pole znaků, které má být převedeno na řetězec
Návratová hodnota: string => převedený řetězec
Popis: Tento přetížený konstruktor třídy std :: string vezme pole znaků nebo řetězec C jako argument a vrátí řetězec.
Následující program ukazuje tento převod.
#include #include using namespace std; int main() { char myarray[] = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Výstup:
Převedený řetězec: Nápověda k testování softwaru
Výše uvedený program je poměrně jednoduchý. Stačí jen jedno volání konstruktoru std :: string, který převede dané pole znaků na řetězec.
# 2) Použití = přetížený operátor
Dalším přístupem k převodu pole znaků na objekt řetězce je použití přetíženého operátoru =. V tomto můžeme přímo přiřadit znakové pole řetězcovému objektu pomocí operátoru = a obsah bude předán řetězci.
Následující příklad to ukazuje.
#include #include using namespace std; int main() { char myarray[] = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Výstup:
Převedený řetězec: Nápověda k testování softwaru
Výše uvedený program přiřadí pole přímo k objektu řetězce pomocí operátoru =, což má za následek kopírování obsahu pole znaků do objektu řetězce.
Závěr
Viděli jsme různé metody převodu jednoho znaku i pole znaků na řetězcové objekty. Protože třída std :: string má mnoho funkcí, které nám umožňují efektivně manipulovat s řetězci, je vždy užitečné pracovat s daty znaků tak, že je nejprve převedeme na řetězce.
Další čtení = >> Převést Char na Int v Javě
Další čtení = >> Převést Char na řetězec v Javě
Můžeme také použít metody třídy k převodu dat znaků na řetězce. V tomto nejprve vložíme data do streamu a poté zapíšeme tuto vyrovnávací paměť do řetězcového objektu.
V našich dalších cvičeních podrobně probereme třídu stringstream a další funkce knihovny v C ++.
=> Zaškrtněte zde a podívejte se na A-Z výukových kurzů C ++.
Doporučené čtení
- Funkce řetězce Python
- Výukový program Java String s funkcí String Buffer a String Builder
- Funkce klasifikace a transformace znaků v C ++
- Řetězcové funkce VBScript: Funkce VBScript inStr, Replace, Mid a Trim
- Výukový program pro rozdělení řetězce v Pythonu
- C # String Tutorial - Metody řetězců s příklady kódu
- Řetězce v C ++ s příklady
- Funkce knihovny v C ++