C++ Тип данни Char с примери

Какво е Чар?

Чар е а C++ тип данни, предназначени за съхранение на писма. Char е съкращение за буквено-цифров знак. Това е интегрален тип данни, което означава, че стойността се съхранява като цяло число. Един char заема размер на паметта от 1 байт. Той също така съхранява един знак.

Какво е ASCII?

Стойността char се интерпретира като ASCII знак. Това е подобно на начина, по който булевите стойности се интерпретират като истина или невярно. ASCII е акроним на американски стандартен код за обмен на информация. Той дефинира специфичен начин за представяне на английски знаци като числа.

Числата варират между 0 и 127. Например знакът "a" е еквивалентен на ASCII код 97.

Char декларация

За да декларирате a char променлива в C++, използваме ключовата дума char. Това трябва да бъде последвано от името на променливата. Променливата може да бъде инициализирана по време на декларацията. Стойността на променливата трябва да бъде оградена в единични кавички.

Синтаксис

Ето синтаксиса за декларация на char в C++:

char variable-name;

Името на променливата е името, което трябва да бъде присвоено на променливата.

Ако трябва да се присвои стойност по време на декларацията, можете да използвате този синтаксис:

char variable-name = 'value';	
  • Името на променлива е името на променливата char.
  • Стойността е стойността, която трябва да бъде присвоена на променливата char.

Пример 1:

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

Изход:

Char декларация

Ето екранна снимка на кода:

Char декларация

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
  2. Включване на пространството от имена std в нашия код, за да използваме неговите класове, без да го извикваме.
  3. Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
  4. Декларирайте символна променлива с име grade. На променливата също е присвоена стойност B. Забележете, че стойността на променливата е оградена в единични кавички.
  5. Отпечатайте стойността на променливата оценка заедно с друг текст на конзолата.
  6. Програмата трябва да върне стойност при успешно завършване.
  7. Край на тялото на функцията main().

Отпечатване на ASCII стойност

Както беше посочено по-горе, всеки символ се интерпретира като ASCII знак. Възможно е да получите ASCII стойността на всеки знак. Просто предавате знака на функцията int(). Този процес се нарича тип кастинг. Нека демонстрираме това:

Пример 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;
}

Изход:

Отпечатване на ASCII стойност

Ето екранна снимка на кода:

Отпечатване на ASCII стойност

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
  2. Включване на пространството от имена std в нашия код, за да използваме неговите класове, без да го извикваме.
  3. Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
  4. Декларирайте променлива char с име ch.
  5. Отпечатайте малко текст на конзолата. Текстът изисква от потребителя да въведе стойност за променливата ch.
  6. Прочетете въвеждането на потребителя от клавиатурата и го запазете в променливата ch.
  7. Отпечатайте малко текст на конзолата. Текстът ще включва знака, който сте въвели за променлива ch, ASCII стойността на този знак и друг текст.
  8. Програмата трябва да върне стойност при успешно завършване.
  9. Край на тялото на функцията main().

Отпечатване на стойност на Char

Като се има предвид ASCII стойност, C++ компилаторът може да върне съответния знак. Вие декларирате променлива char и й присвоявате цяло число. Тя ще бъде преобразувана в съответната символна стойност.

Пример 3:

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

Изход:

Отпечатване на стойност на Char

Ето екранна снимка на кода:

Отпечатване на стойност на Char

Обяснение на кода:

  1. Включване на заглавния файл на iostream в кода. След това ще използваме неговите функции, без да получаваме грешки.
  2. Включете пространството от имена std в кода. Ще използваме неговите класове, без да го извикваме.
  3. Извикване на функцията main(). Логиката на програмата трябва да влезе в тялото на тази функция.
  4. Декларирайте три символни променливи x, y и z. На трите са присвоени цели числа от 65, 66 и 67. Те ще бъдат третирани като ASCII стойности за символи.
  5. Отпечатайте стойността на променливата x на конзолата. Тъй като x е деклариран като char, ще бъде върнат char с ASCII стойност 65, тоест A.
  6. Отпечатайте стойността на променливата y на конзолата. Тъй като y е деклариран като char, ще бъде върнат char с ASCII стойност 66, тоест B.
  7. Отпечатайте стойността на променлива z на конзолата. Тъй като z е деклариран като char, ще бъде върнат char с ASCII стойност 67, тоест C.
  8. Програмата трябва да върне стойност при успешно завършване.
  9. Краят на тялото на функцията main().

Въвеждане на знаци

Можем да използваме функцията std::cin, за да прочетем символ, въведен от потребителя чрез клавиатурата. std::cin ще ви позволи да въведете много знаци. Променливата на символа обаче може да съдържа само един знак. Това означава, че само първият въведен знак ще бъде извлечен и съхранен в символната променлива. Останалите ще останат в буфера, използван от std::cin. За да го извлечете, направете последващи извиквания към std::cin.

Пример 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;
}

Изход:

Въвеждане на знаци

Ето екранна снимка на кода:

Въвеждане на знаци

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
  2. Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
  3. Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
  4. Отпечатайте малко текст на конзолата.
  5. Декларирайте символна променлива с име ch.
  6. Прочетете въвеждането на потребителя от клавиатурата. Входът ще бъде съхранен в променливата ch. Тъй като потребителят ще въведе последователност от знаци като abc, само първият знак, a, ще бъде съхранен в променлива ch.
  7. Отпечатване на първия въведен знак, неговия ASCII код и друг текст на конзолата. ASCII кодът се определя чрез предаване на символната променлива към функцията int().
  8. Прочетете следващия знак, въведен от потребителя. От потребителя няма да се изисква да въвежда нов знак. Вместо това ще прочете втория въведен знак, т.е. b.
  9. Отпечатване на втория въведен знак, неговия ASCII код и друг текст на конзолата. ASCII кодът се определя чрез предаване на символната променлива към функцията int().
  10. Програмата трябва да върне стойност при успешно завършване.
  11. Край на тялото на функцията main().

Преобразуване на символ в низ

Съществуват няколко начина, по които можем да преобразуваме знаци струни.

Нека ги обсъдим:

#1: Използване на конструктор, даден от клас низ

Това може да стане с помощта на следния синтаксис:

string st(int n,char x);

Параметърът n обозначава размера на низа, който трябва да бъде генериран.

Параметърът x е знакът за преобразуване в низ.

Функцията връща низ.

Пример 5:

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

Изход:

Преобразуване на символ в низ

Ето екранна снимка на кода:

Преобразуване на символ в низ

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
  2. Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
  3. Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
  4. Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
  5. Преобразувайте знака “C” в низ с дължина 1 и присвоете получения низ на променливата st.
  6. Отпечатайте стойността на низа st на конзолата заедно с друг текст.
  7. Програмата трябва да върне стойност при успешно завършване.
  8. Край на тялото на функцията main().

#2) Използване на std::string Operators = и +=

Операторите = и += вече са претоварени със знаци. Двете могат да се използват за преобразуване на определен знак в низ.

Пример 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;
}

Изход:

Преобразуване на символ в низ

Ето екранна снимка на кода:

Преобразуване на символ в низ

Обяснение на кода:

  1. Включете заглавния файл на iostream в нашия код, за да използвате неговите функции.
  2. Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
  3. Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
  4. Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
  5. Създайте низова променлива с име st.
  6. Създайте символ с име b със стойност B.
  7. Присвоете стойност A на низа с име st.
  8. Използвайте оператора +=, за да конвертирате символи в низ.
  9. Отпечатайте стойността на низа st на конзолата заедно с друг текст.
  10. Програмата трябва да върне стойност при успешно завършване.
  11. Край на тялото на функцията main().

#3: Използване на std::string методи

Класът std::string идва с много претоварени функции, които могат да ви помогнат да конвертирате символи в низове.

Те включват:

  • тласък_назад Тази функция присвоява определен знак към края на низ. Той е претоварен за знаци. Приема следния синтаксис:
    void push_back(char ch)
    

    Параметърът ch е символът, който трябва да бъде променен на низ.

  • прибавям Тя присвоява много копия на определен знак към низ. Функцията приема следния синтаксис:
    string& append(size_t n,char ch)
    

    Параметърът n обозначава пъти, в които знакът ще бъде добавен.

    Параметърът ch е знакът, който да се добави към низ.

  • възлага Тази функция замества текущото съдържание на низа с n копия на посочения знак. Тя приема следния синтаксис:
    string& assign(size_t n,char ch);

    Параметърът n обозначава общия брой копия за знака.

    Параметърът ch е знакът за копиране в низа.

  • вмъкнете Функцията за вмъкване вмъква n копия на знак в началната позиция на низа, както е посочено в аргументите. Той приема следния синтаксис:
    string& insert(size_t p,size_t n,char ch);

    Параметърът p обозначава позицията от началото, където ще бъдат вмъкнати знаци.

    Параметърът n обозначава общия брой копия за знака.

    Параметърът ch е символът, който трябва да се вмъкне в низа.

Пример 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;
}

Изход:

Преобразуване на символ в низ

Ето екранна снимка на кода:

Преобразуване на символ в низ

  1. Включете заглавния файл на iostream в нашия код, за да използвате неговите функции.
  2. Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
  3. Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
  4. Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
  5. Създайте низова променлива с име st.
  6. Присвоете символа A в края на низа.
  7. Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
  8. Задайте стойността на низа st на празен.
  9. Присвоете един символ C на низа с име st.
  10. Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
  11. Задайте стойността на низа st на празен.
  12. Заменете съдържанието за низ st с един символ D.
  13. Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
  14. Вмъкнете един символ E в низа с име st от първия му индекс.
  15. Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
  16. Програмата трябва да върне стойност при успешно завършване.
  17. Край на тялото на функцията main().

#4: Използване на std::stringstream

За да използвате този клас за преобразуване на знак в низ, вмъкнете знака в поток.

Те ще бъдат записани в низа.

Пример 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;
}

Изход:

Преобразуване на символ в низ

Ето екранна снимка на кода:

Преобразуване на символ в низ

Обяснение на кода:

  1. Включете заглавния файл на iostream в нашия код, за да използвате неговите функции.
  2. Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
  3. Включете заглавния файл на sstream в нашия код, за да използвате неговите функции.
  4. Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
  5. Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
  6. Създайте низова променлива с име st.
  7. Създайте променлива на потока с име myst.
  8. Вмъкнете знака A в обект на поток, наречен myst.
  9. Преобразувайте потоковия обект в низ.
  10. Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
  11. Програмата трябва да върне стойност при успешно завършване.
  12. Край на тялото на функцията main().

Oбобщение

  • Символът е a C++ тип данни, използвани за съхранение на писма.
  • C++ Char е интегрален тип данни, което означава, че стойността се съхранява като цяло число.
  • Той заема памет от 1 байт.
  • C++ Char съхранява само един знак.
  • Char стойностите се интерпретират като ASCII знаци.
  • ASCII е акроним на американски стандартен код за обмен на информация.
  • Той посочва специфичен начин за представяне на английски знаци под формата на числа.
  • За да видим ASCII стойността на символ, ние го предаваме на функцията int().
  • За да видим съответната стойност на char на ASCII стойността, ние дефинираме ASCII като знак.