c character conversion functions
Този урок обхваща функции за преобразуване на символи C ++ като преобразуване на символ в цяло число или низ и низ от символи в низ с примери за код:
В C ++, докато разработваме приложения, включващи много типове, става необходимо да конвертирате от един тип в друг. Вече видяхме няколко основни преобразувания на типа в нашите по-ранни уроци.
Виждали сме и преобразуване на низове и преобразуване на числови типове в низове. Освен функциите за преобразуване на низове, които вече видяхме, има няколко функции, които се използват за преобразуване на символ в други типове данни.
Това са функциите, които вземат един знак или масив от знаци и след това ги преобразуват в други типове данни.
=> Прочетете серията Easy C ++ Training.
Какво ще научите:
- Функции за преобразуване на символи на C ++
- Заключение
Функции за преобразуване на символи на C ++
Когато става въпрос за преобразуване на единични символи в цяло число или низ и преобразуване на масив от знаци в низ, функциите за преобразуване леко се променят от функциите за преобразуване на низове.
c ++ преобразуване на символ в int
В този урок ще обсъдим следните реализации:
- Преобразуване на символ в цяло число (char в int C ++)
- Преобразуване на символ в низ (char в низ C ++)
- Преобразуване на символен масив в низ
Първите две преобразувания се занимават с един символ, докато последното преобразуване включва символен масив.
Преобразуване на знак в цяло число - char в int
За да преобразуваме единичен знак в цяло число, имаме два метода, както е посочено по-долу:
# 1) Чрез кастинг
Можем да използваме операция за леене, за да преобразуваме един символ в неговия цялостен еквивалент. В този случай ще се покаже еквивалентът на ASCII на символа.
Помислете за следното преобразуване,
char a = 'A'; int num = (int) a;
В този случай „num“ ще има стойността 65, която е ASCII еквивалент на символ „A“.
Като алтернатива можем да използваме следната операция, ако искаме да преобразуваме числов знак в цяло число.
char a = '2'; int num = a-48;
Тук 48 е ASCII стойност 0. Това, което се прави тук, е вторият ред a-48 имплицитно преобразува char a в неговия ASCII еквивалент и след това го изважда от 48 (50-48), което води до цяло число 2.
# 2) Използване на низ поток
Както вече се вижда в урока за функциите за преобразуване на низове, можем да преобразуваме единичен символ, представен като обект на низ в цяло число или всяка цифрова стойност.
Даден по-долу е код, който демонстрира това.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Изход:
Преобразувана стойност на знак 5: 5
Конвертиране на символ в низ - знак в низ
Има различни начини, чрез които можем да преобразуваме един символ в низ.
Нека обсъдим някои от тези методи.
# 1) Използване на конструктор, предоставен от низ клас.
Прототип на функция: низ s (int n, char x);
Параметър (и):
n => Размер на генерирания низ.
x => Символ, който трябва да бъде преобразуван в низ.
Възвръщаема стойност: s тринг, получен чрез преобразуване на характер.
Описание: Конструкторът на низ клас взема дължината на низа (n) и един символ като параметри и след това преобразува символа в низ.
По-долу е даден прост пример за демонстриране на преобразуването на един символ в низ.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Изход:
Низът, получен чрез преобразуване на единичен знак: A
Горното преобразуване е просто. Извикваме конструктора на низове и посочваме дължината на низа (първи параметър) като 1, тъй като преобразуваме единичен знак, а вторият параметър е символът, който трябва да бъде преобразуван в низ (в този случай ‘A’).
# 2) Използване на std :: string Operator = And + =
Операторите на клас std :: string, = и + = са претоварени за символи. Така че можем да използваме тези оператори, за да преобразуваме един символ в низ.
Това е демонстрирано в програмата, показана по-долу.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Изход:
Низът, получен чрез преобразуване на единичен знак: CB
В тази програма сме използвали както претоварените оператори, =, и + =. Декларирахме низ обект и след това му присвоихме символ с помощта на оператора =. След това използваме + = оператор и присвояваме друг символ на низовия обект.
Виждаме, че вторият път, когато символът всъщност се свързва с вече съществуващото съдържание в обекта низ.
# 3) Използване на различни методи на std :: string
класът std :: string поддържа различни претоварени методи, с помощта на които можем да предадем символ на низ, който в крайна сметка преобразува символ в низ.
Някои от методите на клас std :: string са:
- избутвам
Прототип на функция: void push_back (char c)
Параметър (и): c => Символ, който трябва да бъде присвоен на низ
Възвръщаема стойност: връща се невалидно
Описание: Тази функция е претоварена за символи и тя присвоява знак в края на низа.
- добави
Прототип на функция: низ и добавяне (size_t n, char c)
Параметър (и):
n => Брой пъти, когато символът трябва да бъде добавен.
c => Символ, който трябва да бъде добавен към низа.
Възвръщаема стойност: Низ, получен чрез преобразуване на символ.
Описание: Функцията за добавяне на std :: string взема два аргумента. Първият аргумент е колко пъти символът трябва да бъде копиран в низа. Вторият аргумент е действителният знак за копиране. Така че функцията за добавяне ще присвои тези много копия на символ на низа, както е посочено в първия аргумент.
- възлага
Прототип на функция: низ и присвояване (size_t n, char c);
Параметър (и):
n => Брой копия на знака.
c => Символ, който трябва да бъде копиран в низ.
Възвръщаема стойност: Низ, получен чрез преобразуване на символ.
Описание: Функцията Assign заменя съдържанието на текущия низ с n (първи аргумент) копия на символа (втори аргумент).
- вмъкване
Прототип на функция: низ и вмъкване (size_t pos, size_t n, char c);
Параметър (и):
pos => Позиция в началото на кои символи трябва да се вмъкнат.
n => Брой копия на знака.
c => Символ, който трябва да се вмъкне в низа.
Възвръщаема стойност: Низ, получен чрез преобразуване на символ.
Описание: Тази функция вмъква n (втори аргумент) копия на символ (трети аргумент) в началната позиция на низа, посочен от pos (първи аргумент).
След това ще разработим програма, която демонстрира всички горепосочени функции на клас std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Изход:
push_back единичен знак: A
добавяне на един знак: C
присвояване на единичен знак: D
вмъкнете единичен знак: BD
Горната програма демонстрира функциите push_back, добавяне, присвояване и вмъкване. Резултатът показва резултата или низа, върнат от всяка функция.
# 4) Използване на std :: stringstream
Вече обсъдихме преобразуването на числови типове в низ с помощта на stringstream. Преобразуването на символ в низ също следва същия принцип, когато се използва низ поток клас.
Даденият символ се вмъква в потока и след това съдържанието се записва в низа.
Нека изясним това с помощта на програма C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Изход:
Низът, получен чрез преобразуване на един знак: A
Първо вмъкваме символа в обекта поток и след това този буфер се записва в обекта низ. По този начин изходът на програмата показва съдържанието на низовия обект, който е единичен символ.
Преобразуване на масив от символи в низ
Класът std :: string има много методи, които могат да бъдат полезни при работа с масиви от знаци. Следователно е препоръчително да преобразуваме символни масиви в низови обекти и след това да ги използваме, за да можем да пишем ефективни програми.
Има два метода за преобразуване на масива от символи в низ, както е показано по-долу.
# 1) Използване на конструктор на низове
Както вече беше обсъдено за преобразуване на един символ в низ, можем да използваме конструктора на низове, за да преобразуваме масив от символи в низ.
Прототип на функция: низ (const char * s);
Параметри: s => масив от символи с край на нула, който трябва да се преобразува в низ
Възвръщаема стойност: низ => преобразуван низ
Описание: Този претоварен конструктор на клас std :: string взема като аргумент масива от символи или C-низ и връща низа.
Следващата програма демонстрира това преобразуване.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Изход:
Конвертиран низ: Помощ за тестване на софтуер
Горната програма е съвсем проста. Всичко, което е необходимо, е само едно извикване на конструктора std :: string за преобразуване на дадения масив от символи в низ.
# 2) Използване = Претоварен оператор
Друг подход за преобразуване на символен масив в низ обект е използването на претоварен оператор =. В това можем директно да присвоим масива от символи на низ обект, използвайки = оператор и съдържанието ще бъде предадено на низ.
Следващият пример показва това.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Изход:
Конвертиран низ: Помощ за тестване на софтуер
Горната програма присвоява масива директно на низ обект, използвайки = оператор, което води до копиране на съдържание на масив от символи в низ обект.
Заключение
Виждали сме различни методи за преобразуване на един символ, както и масиви от символи в низови обекти. Тъй като класът std :: string има много функции, които ни позволяват да манипулираме ефективно низовете, винаги е полезно да работим с данни от символи, като ги преобразуваме първо в низове.
Допълнително четене = >> Преобразувайте Char в Int в Java
Допълнително четене = >> Конвертирайте Char в String в Java
Можем да използваме и методи на клас за преобразуване на символни данни в низове. При това първо вмъкваме данните в потока и след това записваме този буфер в низ обект.
В следващите ни уроци ще обсъдим в детайли клас поток и повече библиотечни функции в C ++.
=> Проверете тук, за да видите A-Z на C ++ уроци за обучение.
Препоръчително четене
- Функции на низовете на Python
- Java String с String Buffer и String Builder Tutorial
- Функции за класификация и трансформация на символи C ++
- Функции на низове VBScript: Функции VBScript inStr, заместване, средата и подрязване
- Урок за разделяне на низове на Python
- Инструкция за C # String - Методи за низове с примери за кодове
- Низове в C ++ с примери
- Библиотечни функции в C ++