C++ Typ dat znaku s příklady

Co je Char?

Char je a C++ datový typ určený pro ukládání dopisů. Char je zkratka pro alfanumerický znak. Jedná se o integrální datový typ, což znamená, že hodnota je uložena jako celé číslo. Znak zabírá velikost paměti 1 bajt. Ukládá také jeden znak.

Co je ASCII?

Hodnota char je interpretována jako znak ASCII. Je to podobné tomu, jak jsou logické hodnoty interpretovány jako pravdivé nebo nepravdivé. ASCII je zkratka pro americký standardní kód pro výměnu informací. Definuje specifický způsob reprezentace anglických znaků jako čísel.

Čísla se pohybují mezi 0 a 127. Například znak 'a' je ekvivalentní ASCII kódu 97.

Char Deklarace

Prohlásit a char proměnná v C++, používáme klíčové slovo char. Za ním by měl následovat název proměnné. Proměnná může být inicializována v době deklarace. Hodnota proměnné by měla být uzavřena do jednoduchých uvozovek.

Syntax

Zde je syntaxe pro deklaraci znaků v C++:

char variable-name;

Název-proměnné je název, který má být proměnné přiřazen.

Pokud má být v době deklarace přiřazena hodnota, můžete použít tuto syntaxi:

char variable-name = 'value';	
  • Název-proměnné je název proměnné char.
  • Hodnota je hodnota, která má být přiřazena proměnné char.

Příklad 1:

#include <iostream>
using namespace std;
int main() {
	char grade = 'B';
	cout << "I scored a: "<<grade;
	return 0;
}

Výstup:

Char Deklarace

Zde je snímek obrazovky kódu:

Char Deklarace

Vysvětlení kódu:

  1. Zahrnutí hlavičkového souboru iostream do našeho kódu pro použití jeho funkcí.
  2. Zahrnutí jmenného prostoru std do našeho kódu, abychom mohli používat jeho třídy bez jeho volání.
  3. Volání funkce main(). Programová logika by měla být přidána do těla této funkce.
  4. Deklarujte znakovou proměnnou s názvem grade. Proměnné byla také přiřazena hodnota B. Všimněte si, že hodnota proměnné je uzavřena v jednoduchých uvozovkách.
  5. Vytiskněte hodnotu stupně proměnné vedle jiného textu na konzole.
  6. Program musí po úspěšném dokončení vrátit hodnotu.
  7. Konec těla funkce main().

Tisk hodnoty ASCII

Jak je uvedeno výše, každý znak je interpretován jako znak ASCII. Je možné, že získáte hodnotu ASCII libovolného znaku. Jednoduše předáte znak funkci int(). Tento proces se nazývá typové odlévání. Pojďme si to ukázat:

Příklad 2:

#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;
}

Výstup:

Tisk hodnoty ASCII

Zde je snímek obrazovky kódu:

Tisk hodnoty ASCII

Vysvětlení kódu:

  1. Zahrnutí hlavičkového souboru iostream do našeho kódu, abychom mohli používat jeho funkce.
  2. Zahrnutí jmenného prostoru std do našeho kódu, abychom mohli používat jeho třídy bez jeho volání.
  3. Volání funkce main(). Programová logika by měla být přidána do těla této funkce.
  4. Deklarujte proměnnou char s názvem ch.
  5. Vytiskněte nějaký text na konzoli. Text žádá uživatele o zadání hodnoty proměnné ch.
  6. Přečtěte si uživatelský vstup z klávesnice a uložte jej do proměnné ch.
  7. Vytiskněte nějaký text na konzoli. Text bude obsahovat znak, který jste zadali pro proměnnou ch, hodnotu ASCII tohoto znaku a další text.
  8. Program musí po úspěšném dokončení vrátit hodnotu.
  9. Konec těla funkce main().

Tisk hodnoty znaku

Vzhledem k hodnotě ASCII je C++ kompilátor může vrátit odpovídající znak. Deklarujete proměnnou char a přiřadíte jí celočíselnou hodnotu. Bude převedena na odpovídající hodnotu znaku.

Příklad 3:

#include <iostream>
using namespace std;
int main() {
	char x = 64, y = 66, z = 71;
	cout << x;
	cout << y;
	cout << z;
	return 0;
}

Výstup:

Tisk hodnoty znaku

Zde je snímek obrazovky kódu:

Tisk hodnoty znaku

Vysvětlení kódu:

  1. Včetně hlavičkového souboru iostream do kódu. Jeho funkce pak použijeme bez chyb.
  2. Zahrňte do kódu jmenný prostor std. Použijeme jeho třídy, aniž bychom je volali.
  3. Volání funkce main(). Logika programu by měla jít do těla této funkce.
  4. Deklarujte tři znakové proměnné x, y a z. Těmto třem byly přiřazeny celočíselné hodnoty 65, 66 a 67. Tyto hodnoty budou považovány za znaky ASCII.
  5. Vytiskněte hodnotu proměnné x na konzole. Protože x bylo deklarováno jako znak, bude vrácen znak s hodnotou ASCII 65, tedy A.
  6. Vytiskněte hodnotu proměnné y na konzole. Protože y bylo deklarováno jako znak, bude vrácen znak s hodnotou ASCII 66, tedy B.
  7. Vytiskněte hodnotu proměnné z na konzole. Protože z bylo deklarováno jako znak, bude vrácen znak s hodnotou ASCII 67, tedy C.
  8. Program musí po úspěšném dokončení vrátit hodnotu.
  9. Konec těla funkce main().

Zadávání znaků

K načtení znaku zadaného uživatelem pomocí klávesnice můžeme použít funkci std::cin. std::cin vám umožní zadat mnoho znaků. Proměnná znak však může obsahovat pouze jeden znak. To znamená, že pouze první zadaný znak bude extrahován a uložen do znakové proměnné. Zbytek zůstane ve vyrovnávací paměti používané std::cin. Chcete-li jej extrahovat, proveďte následující volání na std::cin.

Příklad 4:

#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;
}

Výstup:

Zadávání znaků

Zde je snímek obrazovky kódu:

Zadávání znaků

Vysvětlení kódu:

  1. Zahrnutí hlavičkového souboru iostream do našeho kódu pro použití jeho funkcí.
  2. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  3. Volání funkce main(). Programová logika by měla být přidána do těla této funkce.
  4. Vytiskněte nějaký text na konzoli.
  5. Deklarujte znakovou proměnnou s názvem ch.
  6. Čtení uživatelského vstupu z klávesnice. Vstup bude uložen do proměnné ch. Protože uživatel zadá sekvenci znaků jako abc, bude do proměnné ch uložen pouze první znak a.
  7. Tisk prvního zadaného znaku, jeho ASCII kódu a dalšího textu na konzole. ASCII kód ​​je určen předáním znakové proměnné funkci int().
  8. Přečtěte si další znak, který uživatel zadal. Uživatel nebude muset zadávat nový znak. Místo toho přečte druhý zadaný znak, tj. b.
  9. Tisk druhého zadaného znaku, jeho ASCII kódu a dalšího textu na konzole. ASCII kód ​​je určen předáním znakové proměnné funkci int().
  10. Program musí po úspěšném dokončení vrátit hodnotu.
  11. Konec těla funkce main().

Převod znaku na řetězec

Existuje několik způsobů, jak znaky převést řetězce.

Pojďme o nich diskutovat:

#1: Použití konstruktoru daného třídou String

To lze provést pomocí následující syntaxe:

string st(int n,char x);

Parametr n udává velikost řetězce, který se má vygenerovat.

Parametr x je znak, který se má převést na řetězec.

Funkce vrací řetězec.

Příklad 5:

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st(1, 'C');
	cout << "The resulting string is : " << st;
	return 0;
}

Výstup:

Převod znaku na řetězec

Zde je snímek obrazovky kódu:

Převod znaku na řetězec

Vysvětlení kódu:

  1. Zahrnutí hlavičkového souboru iostream do našeho kódu pro použití jeho funkcí.
  2. Chcete-li používat jeho funkce, zahrňte do našeho kódu soubor záhlaví řetězce.
  3. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  4. Volání funkce main(). Programová logika by měla být přidána do těla této funkce.
  5. Převeďte znak „C“ na 1-délkový řetězec a výsledný řetězec přiřaďte proměnné st.
  6. Vytiskněte hodnotu řetězce st na konzole vedle jiného textu.
  7. Program musí po úspěšném dokončení vrátit hodnotu.
  8. Konec těla funkce main().

#2) Pomocí std::string Operators = a +=

Operátory = a += jsou již přetížené znaky. Tyto dva lze použít k převodu určitého znaku na řetězec.

Příklad 6:

#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;
}

Výstup:

Převod znaku na řetězec

Zde je snímek obrazovky kódu:

Převod znaku na řetězec

Vysvětlení kódu:

  1. Chcete-li používat jeho funkce, zahrňte do našeho kódu hlavičkový soubor iostream.
  2. Chcete-li používat jeho funkce, zahrňte do našeho kódu soubor záhlaví řetězce.
  3. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  4. Volání funkce main(). Programová logika by měla být přidána do těla této funkce.
  5. Vytvořte řetězcovou proměnnou s názvem st.
  6. Vytvořte znak s názvem b s hodnotou B.
  7. Přiřaďte hodnotu A řetězci s názvem st.
  8. K převodu znaků na řetězec použijte operátor +=.
  9. Vytiskněte hodnotu řetězce st na konzole vedle jiného textu.
  10. Program musí po úspěšném dokončení vrátit hodnotu.
  11. Konec těla funkce main().

#3: Použití metod std::string

Třída std::string přichází s mnoha přetíženými funkcemi, které vám mohou pomoci převést znaky na řetězce.

Patří mezi ně:

  • zatlačit zpátky Tato funkce přiřadí konkrétní znak na konec řetězce. Je přetížený znaky. Vyžaduje následující syntaxi:
    void push_back(char ch)
    

    Parametr ch je znak, který se má změnit na řetězec.

  • připojit Řetězci přiřadí mnoho kopií určitého znaku. Funkce má následující syntaxi:
    string& append(size_t n,char ch)
    

    Parametr n označuje časy, kdy bude znak připojen.

    Parametr ch je znak, který se má připojit k řetězci.

  • přiřadit Tato funkce nahradí aktuální obsah řetězce n kopiemi zadaného znaku. Má následující syntaxi:
    string& assign(size_t n,char ch);

    Parametr n označuje celkový počet kopií pro znak.

    Parametr ch je znak, který se má zkopírovat do řetězce.

  • INSERT Funkce insert vloží n kopií znaku na počáteční pozici řetězce, jak je uvedeno v argumentech. Vyžaduje následující syntaxi:
    string& insert(size_t p,size_t n,char ch);

    Parametr p označuje pozici od začátku, kam budou znaky vloženy.

    Parametr n označuje celkový počet kopií pro znak.

    Parametr ch je znak, který se má vložit do řetězce.

Příklad 7:

#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;
}

Výstup:

Převod znaku na řetězec

Zde je snímek obrazovky kódu:

Převod znaku na řetězec

  1. Chcete-li používat jeho funkce, zahrňte do našeho kódu hlavičkový soubor iostream.
  2. Chcete-li používat jeho funkce, zahrňte do našeho kódu soubor záhlaví řetězce.
  3. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  4. Volání funkce main(). Programová logika by měla být přidána do těla této funkce.
  5. Vytvořte řetězcovou proměnnou s názvem st.
  6. Přiřaďte znak A na konec řetězce.
  7. Vytiskněte hodnotu řetězce st na konzole vedle jiného textu. Endl (koncový řádek) přesune kurzor na další řádek.
  8. Nastavte hodnotu řetězce st na prázdnou.
  9. Přiřaďte jeden znak C řetězci s názvem st.
  10. Vytiskněte hodnotu řetězce st na konzole vedle jiného textu. Endl (koncový řádek) přesune kurzor na další řádek.
  11. Nastavte hodnotu řetězce st na prázdnou.
  12. Nahraďte obsah řetězce st jedním znakem D.
  13. Vytiskněte hodnotu řetězce st na konzole vedle jiného textu. Endl (koncový řádek) přesune kurzor na další řádek.
  14. Vložte jeden znak E do řetězce s názvem st z jeho prvního indexu.
  15. Vytiskněte hodnotu řetězce st na konzole vedle jiného textu. Endl (koncový řádek) přesune kurzor na další řádek.
  16. Program musí po úspěšném dokončení vrátit hodnotu.
  17. Konec těla funkce main().

#4: Použití std::stringstream

Chcete-li použít tuto třídu k převodu znaku na řetězec, vložte znak do proudu.

Budou zapsány do řetězce.

Příklad 8:

#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;
}

Výstup:

Převod znaku na řetězec

Zde je snímek obrazovky kódu:

Převod znaku na řetězec

Vysvětlení kódu:

  1. Chcete-li používat jeho funkce, zahrňte do našeho kódu hlavičkový soubor iostream.
  2. Chcete-li používat jeho funkce, zahrňte do našeho kódu soubor záhlaví řetězce.
  3. Chcete-li používat jeho funkce, zahrňte do našeho kódu hlavičkový soubor streamu.
  4. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  5. Volání funkce main(). Programová logika by měla být přidána do těla této funkce.
  6. Vytvořte řetězcovou proměnnou s názvem st.
  7. Vytvořte proměnnou proudu s názvem myst.
  8. Vložte znak A do streamového objektu s názvem myst.
  9. Převeďte objekt proudu na řetězec.
  10. Vytiskněte hodnotu řetězce st na konzole vedle jiného textu. Endl (koncový řádek) přesune kurzor na další řádek.
  11. Program musí po úspěšném dokončení vrátit hodnotu.
  12. Konec těla funkce main().

Shrnutí

  • Znak je a C++ datový typ používaný pro ukládání dopisů.
  • C++ Char je integrální datový typ, což znamená, že hodnota je uložena jako celé číslo.
  • Zabírá velikost paměti 1 bajt.
  • C++ Char ukládá pouze jeden znak.
  • Hodnoty znaků jsou interpretovány jako znaky ASCII.
  • ASCII je zkratka pro americký standardní kód pro výměnu informací.
  • Uvádí specifický způsob znázornění anglických znaků ve formě čísel.
  • Abychom viděli hodnotu ASCII znaku, předáme ji funkci int().
  • Abychom viděli odpovídající hodnotu char hodnoty ASCII, definujeme ASCII jako znak.