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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
- Включване на пространството от имена std в нашия код, за да използваме неговите класове, без да го извикваме.
- Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
- Декларирайте символна променлива с име grade. На променливата също е присвоена стойност B. Забележете, че стойността на променливата е оградена в единични кавички.
- Отпечатайте стойността на променливата оценка заедно с друг текст на конзолата.
- Програмата трябва да върне стойност при успешно завършване.
- Край на тялото на функцията 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
- Включване на пространството от имена std в нашия код, за да използваме неговите класове, без да го извикваме.
- Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
- Декларирайте променлива char с име ch.
- Отпечатайте малко текст на конзолата. Текстът изисква от потребителя да въведе стойност за променливата ch.
- Прочетете въвеждането на потребителя от клавиатурата и го запазете в променливата ch.
- Отпечатайте малко текст на конзолата. Текстът ще включва знака, който сте въвели за променлива ch, ASCII стойността на този знак и друг текст.
- Програмата трябва да върне стойност при успешно завършване.
- Край на тялото на функцията 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в кода. След това ще използваме неговите функции, без да получаваме грешки.
- Включете пространството от имена std в кода. Ще използваме неговите класове, без да го извикваме.
- Извикване на функцията main(). Логиката на програмата трябва да влезе в тялото на тази функция.
- Декларирайте три символни променливи x, y и z. На трите са присвоени цели числа от 65, 66 и 67. Те ще бъдат третирани като ASCII стойности за символи.
- Отпечатайте стойността на променливата x на конзолата. Тъй като x е деклариран като char, ще бъде върнат char с ASCII стойност 65, тоест A.
- Отпечатайте стойността на променливата y на конзолата. Тъй като y е деклариран като char, ще бъде върнат char с ASCII стойност 66, тоест B.
- Отпечатайте стойността на променлива z на конзолата. Тъй като z е деклариран като char, ще бъде върнат char с ASCII стойност 67, тоест C.
- Програмата трябва да върне стойност при успешно завършване.
- Краят на тялото на функцията 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
- Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
- Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
- Отпечатайте малко текст на конзолата.
- Декларирайте символна променлива с име ch.
- Прочетете въвеждането на потребителя от клавиатурата. Входът ще бъде съхранен в променливата ch. Тъй като потребителят ще въведе последователност от знаци като abc, само първият знак, a, ще бъде съхранен в променлива ch.
- Отпечатване на първия въведен знак, неговия ASCII код и друг текст на конзолата. ASCII кодът се определя чрез предаване на символната променлива към функцията int().
- Прочетете следващия знак, въведен от потребителя. От потребителя няма да се изисква да въвежда нов знак. Вместо това ще прочете втория въведен знак, т.е. b.
- Отпечатване на втория въведен знак, неговия ASCII код и друг текст на конзолата. ASCII кодът се определя чрез предаване на символната променлива към функцията int().
- Програмата трябва да върне стойност при успешно завършване.
- Край на тялото на функцията 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код, за да използваме неговите функции.
- Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
- Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
- Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
- Преобразувайте знака “C” в низ с дължина 1 и присвоете получения низ на променливата st.
- Отпечатайте стойността на низа st на конзолата заедно с друг текст.
- Програмата трябва да върне стойност при успешно завършване.
- Край на тялото на функцията 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включете заглавния файл на iostream в нашия код, за да използвате неговите функции.
- Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
- Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
- Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
- Създайте низова променлива с име st.
- Създайте символ с име b със стойност B.
- Присвоете стойност A на низа с име st.
- Използвайте оператора +=, за да конвертирате символи в низ.
- Отпечатайте стойността на низа st на конзолата заедно с друг текст.
- Програмата трябва да върне стойност при успешно завършване.
- Край на тялото на функцията 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; }
Изход:
Ето екранна снимка на кода:
- Включете заглавния файл на iostream в нашия код, за да използвате неговите функции.
- Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
- Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
- Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
- Създайте низова променлива с име st.
- Присвоете символа A в края на низа.
- Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
- Задайте стойността на низа st на празен.
- Присвоете един символ C на низа с име st.
- Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
- Задайте стойността на низа st на празен.
- Заменете съдържанието за низ st с един символ D.
- Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
- Вмъкнете един символ E в низа с име st от първия му индекс.
- Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
- Програмата трябва да върне стойност при успешно завършване.
- Край на тялото на функцията 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включете заглавния файл на iostream в нашия код, за да използвате неговите функции.
- Включете файла със заглавен низ в нашия код, за да използвате неговите функции.
- Включете заглавния файл на sstream в нашия код, за да използвате неговите функции.
- Включете пространството от имена std в нашия код, за да използвате неговите класове, без да го извиквате.
- Извикване на функцията main(). Логиката на програмата трябва да се добави в тялото на тази функция.
- Създайте низова променлива с име st.
- Създайте променлива на потока с име myst.
- Вмъкнете знака A в обект на поток, наречен myst.
- Преобразувайте потоковия обект в низ.
- Отпечатайте стойността на низа st на конзолата заедно с друг текст. Endl (краен ред) премества курсора на следващия ред.
- Програмата трябва да върне стойност при успешно завършване.
- Край на тялото на функцията main().
Oбобщение
- Символът е a C++ тип данни, използвани за съхранение на писма.
- C++ Char е интегрален тип данни, което означава, че стойността се съхранява като цяло число.
- Той заема памет от 1 байт.
- C++ Char съхранява само един знак.
- Char стойностите се интерпретират като ASCII знаци.
- ASCII е акроним на американски стандартен код за обмен на информация.
- Той посочва специфичен начин за представяне на английски знаци под формата на числа.
- За да видим ASCII стойността на символ, ние го предаваме на функцията int().
- За да видим съответната стойност на char на ASCII стойността, ние дефинираме ASCII като знак.