stringstream class c usage examples
Клас струнних рядків в C ++ - це клас потоку, який оперує рядками. Клас stringstream реалізує операції введення / виводу на потоках баз пам'яті, тобто рядок:
Клас stringstream в C ++ дозволяє обробляти рядовий об'єкт як потік. Застосовується для роботи на струнах. Обробляючи рядки як потоки, ми можемо виконувати операцію вилучення та вставки з / у рядок, як і потоки cin та cout.
Ці типи операцій в основному корисні для перетворення рядка в числові типи даних і навпаки. Клас stringstream також виявляється корисним при різних типах синтаксичного аналізу.
=> Прочитайте серію навчальних програм Easy C ++.
Що ви дізнаєтесь:
stringstream Class In C ++
Клас струнних потоків можна зобразити зображально таким чином:
Ми можемо побачити, де клас струнних струмів входить у картину на діаграмі ios. Цей клас походить від класу iostream. Об'єкти класу stringstream використовують буфер рядків, що містить послідовність символів. Цей буфер можна отримати безпосередньо як рядовий об'єкт.
Для цього ми можемо використовувати член str ланцюжка потоків. Для використання класу stringstream у програмі C ++ нам потрібно використовувати заголовок .
Наприклад,код для вилучення цілого числа із рядка буде таким:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Тут ми оголошуємо об'єкт рядка зі значенням '2019' та об'єктом int 'myInt'. Далі ми використовуємо конструктор класу stringstream для побудови об’єкта stringstream з об’єкта string. Потім за допомогою оператора вилучення (>>) значення витягується в myInt. З наведеного коду значення myInt буде 2019.
Давайте вивчимо різні операції класу stringstream.
Операції вставки та вилучення з використанням ланцюжка потоків
Тепер ми побачимо, як отримати дані в рядок рядків або операцію вставки і як вивести дані з потоку рядків, тобто операцію вилучення класу рядків потоків.
# 1) Операція вставки
Для того, щоб отримати дані в рядок, ми можемо використовувати два методи.
(i) Використання оператора вставки (<<)
питання інтерв’ю з jira для майстра скраму
Враховуючи об’єкт потоку ss 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 в результаті дії оператора вилучення.
Нижче наведена повна програма, яка демонструє використання операцій вставки та вилучення класу stringstream.
#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< Вихід:
У наведеній вище програмі ми показали спочатку методи вставки, тобто оператор<< and str(string) function that reads the string into stringstream.
є ключем безпеки таким самим, як і пароль
Далі ми побачили роботу методів вилучення, які є функцією str (), яка виводить дані з потокового рядка та оператора >>.
Зверніть увагу, що для оператора >>, оскільки початкові дані потокового рядка складаються з пробілів, при присвоєнні даних рядковій змінній, він буде читати лише до першого пробілу. Отже, щоб перетворити весь об’єкт потокового рядка у рядкові дані, нам потрібна по одна змінна для зчитування даних, розділених пробілами.
Отже, у наведеній вище програмі нам потрібні три рядкові змінні, щоб отримати цілі дані об’єктного рядка.
Застосування stringstream у C ++
Ми можемо знайти використання класу stringstream у різних додатках.
Деякі програми були розглянуті нижче для довідки:
# 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
Щоб підрахувати кількість слів у даному рядку, ми спочатку перетворюємо його в об’єкт stringstream. Потім ми підраховуємо кожне слово за допомогою оператора вилучення (оскільки воно зупиняється на кожному пробілі) у циклі. Нарешті, ми друкуємо значення загальної кількості слів.
найкращий безкоштовний конвертер mov в mp4 -
# 3) Роздрукуйте окремі частоти слів у рядку
Наступним застосуванням ланцюжкового потоку в 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, за винятком того, що він не має каналу введення-виведення.
Ми обговорили різні операції класу stringstream, а також кілька прикладів його застосування в програмуванні.
У наступних підручниках ми детально обговоримо бібліотечні функції мови С ++.
=> Шукайте тут цілу серію навчальних програм C ++.
Рекомендована література
- Використання курсору в MongoDB з прикладами
- Використання ObjectId () у MongoDB з прикладами
- Навчіться користуватися класом C # StringBuilder та його методами на прикладах
- Інтерфейс Java та підручник з абстрактних класів із прикладами
- Приклади твердження селену - практичне застосування в проектах
- Запит документа MongoDB за допомогою методу Find () (приклади)
- Підручник з рядків C # - Рядові методи з прикладами коду
- Дослідіть основи Java в селені на прикладах