logo

рядковий потік у C++ та його додатках

Рядковий потік пов’язує рядковий об’єкт із потоком, дозволяючи вам читати рядок так, ніби це потік (як cin). Щоб використовувати stringstream, нам потрібно включити потік файл заголовка. Клас stringstream надзвичайно корисний для аналізу вхідних даних.

Основними методами є:



    clear() - Щоб очистити потік. str() - Щоб отримати та встановити рядковий об'єкт, вміст якого присутній у потоці. operator <<- Додати рядок до об'єкта stringstream. оператор>>- Прочитати щось з об’єкта stringstream.

приклади:

1. Підрахувати кількість слів у рядку

приклади:



введення: Асіпу Паван Кумар
Вихід: 3

введення: Виродки для гіків Іде
Вихід: 4

Нижче наведено програму C++ для реалізації вищезазначеного підходу-



C++


як прибрати перший символ в excel



// C++ program to count words in> // a string using stringstream.> #include> #include> #include> using> namespace> std;> int> countWords(string str)> {> >// Breaking input into word> >// using string stream> > >// Used for breaking words> >stringstream s(str);> > >// To store individual words> >string word;> >int> count = 0;> >while> (s>> слово)> >count++;> >return> count;> }> // Driver code> int> main()> {> >string s =>'geeks for geeks geeks '> >'contribution placements'>;> >cout <<>' Number of words are: '> << countWords(s);> >return> 0;> }>

>

>

Вихід

 Number of words are: 6>

Часова складність: O(n*log(n)).

Допоміжні приміщення: O(n).

2. Вивести частоти окремих слів у рядку

приклади:

введення: Виродки для вундеркіндів Вікторина Гіки Вікторина Практика Практика
Вихід: Для -> 1
Виродки -> 3
Практика -> 2
Вікторина -> 2

введення: Слово Рядок Частота Рядок
Вихід: Частота -> 1
Рядок -> 2
Слово -> 1

інакше, якщо java

Нижче наведено програму C++ для реалізації вищезазначеного підходу-

C++




// C++ program to demonstrate use> // of stringstream to count> // frequencies of words.> #include> using> namespace> std;> void> printFrequency(string st)> {> >// Each word it mapped to> >// it's frequency> >mapint>FW; // Використовується для розбиття слів stringstream ss(st); // Для зберігання окремих слів string Word; while (ss>> Word) FW[Word]++; for (auto m : FW) cout<< m.first << '->'<< m.second << ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

>

>

Вихід

For->1 Виродки-> 2 Іде-> 1>>> 

Часова складність: O(n*log(n)).

Допоміжні приміщення: O(n).

3. Перетворення цілого числа на рядок

Оскільки оператори вставки та вилучення потоку рядків працюють з різними типами даних. Ось чому він добре працює з цілими числами.

Ми вставимо ціле число в потік рядка, і після вилучення його в рядок це ціле значення стане рядком.

Код-

C++




// C++ program to demonstrate the> // use of a stringstream to> // convert int to string> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >int> val=123;> >// object from the class stringstream> >stringstream geek;> >// inserting integer val in geek stream> >geek << val;> >// The object has the value 123> >// and stream it to the string x> >string x;> >geek>> x;> >// Now the string x holds the> >// value 123> >cout<'4'< return 0; }>

>

Вихід

список ініціалізації python
1234>

Часова складність: O(n) ,n — довжина цілого числа

Допоміжний простір: O(n)

Видалення пробілів із рядка за допомогою Stringstream
Перетворення рядків на числа в C/C++