stringstream class c usage examples
Низовият клас в C ++ е клас на потока, който да работи върху низове. Класът stringstream изпълнява входно / изходните операции на потоци от бази памет, т.е. низ:
Класът stringstream в C ++ позволява низов обект да се третира като поток. Използва се за работа със струни. Като третираме низовете като потоци, можем да извършим операция за извличане и вмъкване от / към низ точно като потоците cin и cout.
Тези видове операции са полезни най-вече за преобразуване на низ в числови типове данни и обратно. Класът stringstream също се оказва полезен при различни типове синтактичен анализ.
=> Прочетете серията Easy C ++ Training.
Какво ще научите:
низ поток клас в C ++
Низовият клас може да бъде представен изобразително, както следва:
Можем да видим къде класът streamstream влиза в картината в ios диаграмата. Този клас е получен от клас iostream. Обектите на класа stringstream използват буфер на низ, съдържащ последователност от символи. Този буфер може да бъде достъпен директно като низ обект.
За тази цел можем да използваме члена str на низ потока. За да използваме клас streamstream в програмата C ++, трябва да използваме заглавката .
Например,кодът за извличане на цяло число от низа ще бъде:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Тук декларираме низ обект със стойност „2019“ и int обект „myInt“. След това използваме конструктора на клас stringstream, за да конструираме обект stringstream от обекта string. След това с помощта на оператора за извличане (>>) стойността се извлича в myInt. От горния код стойността на myInt ще бъде 2019.
Нека да разгледаме различните операции на класа stringstream.
Операции за вмъкване и извличане с помощта на низ поток
Сега ще видим как да получим данни в низа на потока или операцията за вмъкване и как да изведем данни от потока на низа, т.е. операцията за извличане на класа на потока низ.
# 1) Операция за вмъкване
За да получим данните в низ, можем да използваме два метода.
(i) Използване на оператор за вмъкване (<<)
team tutorial урок за начинаещи
Като се има предвид низ от поток ss, можем да присвоим данни на ss буфера, както следва, използвайки<< operator.
stringstream ss; ss<< “hello,world!!”;
Това вмъква „здравей, свят !!“ в низ потока ss.
(ii) Използване на функцията str (string)
Също така можем да използваме функцията str за присвояване на данни към буфера на стрингстрийма. Функцията str приема низа с данни като аргумент и присвоява тези данни на обекта stringstream.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Екстракция
Имаме два метода за извличане на данните от низа на потока или за операцията по извличане.
(i) Използване на функцията str ()
Можем да използваме функцията str (), за да извадим данните от струнния поток, както следва.
stringstream ss; ss<<”Hello,World”; cout< (ii) Използване на оператор за извличане (>>)
Можем да използваме оператора за извличане, за да покажем данните от низовете, както следва.
Stringstream ss; ss<>str;
Според горния код променливата str ще има стойността на ss обекта в резултат на действието на оператора за извличане.
По-долу е дадена пълна програма, която демонстрира използването на операции за вмъкване и извличане на низовия клас.
#include #include #include using namespace std; int main() { //insertion operator << stringstream os; os << 'software '; cout<) stringstream ss; ss<> mystr1; string mystr2; ss>>mystr2; string mystr3; ss>>mystr3; cout< Изход:
как да отворите торент файл на Windows
В горната програма показахме първо методите за вмъкване, т.е. оператор<< and str(string) function that reads the string into stringstream.
След това видяхме работата на методите за извличане, които са функция str (), която извлича данните от низа и оператора >>.
Имайте предвид, че за оператор >>, тъй като данните от първоначалния низ се състоят от бели пространства, докато присвояват данните на низ променлива, той ще чете само до първото бяло пространство. Следователно, за да преобразуваме целия обект на стрингстрим в низови данни, имаме нужда от по една променлива, за да прочетем данните, разделени с празно пространство.
Следователно в горната програма са ни необходими три низови променливи, за да получим всички данни за обектни потоци.
Приложения на stringstream в C ++
Можем да намерим приложенията на stringstream class в различни приложения.
Някои от приложенията са разгледани по-долу за справка:
# 1) Преобразуване между низове и числа
Операторите за вмъкване и извличане на низ потока работят с всички основни типове данни. Следователно можем да ги използваме за преобразуване на низове в числови типове и обратно.
Пълната програма за преобразуване между низове и числа е дадена по-долу.
#include #include #include using namespace std; int main() { //Numeric to string stringstream ss; int nInt = 2019; double nDouble = 3.142; ss << nInt << ' ' <> myStr1 >> myStr2; cout<<'The numeric values converted to string:'<> nIntval >> nDoubleval; cout<<'The string values converted to numeric types:'< Изход:
Първо, преобразувахме числови стойности в низови стойности. След това преобразуваме числовите низови стойности в числови стойности.
# 2) Преброяване на броя на думите в низ
Можем да използваме класа stringstream, за да преброим броя на думите в низ. Пълната програма е дадена по-долу.
#include #include #include using namespace std; int main() { string str = 'Simple Questions To Check Your Software Testing Basic Knowledge'; stringstream s(str); string word; int count = 0; while (s >> word) count++; cout << ' Number of words in given string are: ' << count; return 0; }
Изход:
най-доброто разширение за блокиране на изскачащи прозорци за хром
Броят на думите в даден низ са: 9
За да преброим броя на думите в даден низ, първо го преобразуваме в обекта на стрингстрима. След това броим всяка дума с помощта на оператор за извличане (тъй като спира на всяко празно пространство) в цикъл. Накрая отпечатваме стойността на общия брой думи.
# 3) Отпечатайте отделни честоти на думи в низ
Следващото приложение на stringstream в C ++ е да отпечата честотите на различни думи в даден низ. Това означава, че ще отпечатаме колко пъти дадена дума се появява в дадения низ.
За това поддържаме структура на картата, която ще има двойка ключ-стойност с всяка дума в низа като ключ и съответната й стойност е честотата на тази дума.
Пълната програма на C ++ е показана по-долу.
#include #include #include #include using namespace std; int main() { string mystr = 'Simple Questions To Check Your Software Testing Knowledge '; map myMap; stringstream ss(mystr); string Word; while (ss >> Word) myMap(Word)++; map::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) cout Изход:
В тази програма всяка дума от низа се въвежда в картата и след това броят или честотата на всяка дума се записва като стойност за съответния ключ в картата. По този начин извеждаме всички думи на низа и съответстващите им честоти.
Заключение
Stringstream клас се използва за вмъкване и извличане на данни към / от низовите обекти. Той действа като поток за низовия обект. Класът stringstream е подобен на потоците cin и cout, с изключение на това, че няма входно-изходен канал.
Обсъдихме различни операции на низовия клас заедно с няколко примера за приложенията му в програмирането.
В следващите ни уроци ще обсъдим подробно библиотечните функции на езика C ++.
=> Потърсете тук цялата серия за обучение на C ++.
Препоръчително четене
- Използване на курсора в MongoDB с примери
- Използване на ObjectId () в MongoDB с примери
- Научете се да използвате C # StringBuilder клас и неговите методи с примери
- Урок за интерфейс на Java и абстрактен клас с примери
- Примери за твърдение на селен - практически приложения в проекти
- Документ за заявка MongoDB, използващ метода Find () (примери)
- Инструкция за C # String - Методи за низове с примери за кодове
- Разгледайте основите на Java в селен с примери