मान लीजिए हमारे पास एक स्ट्रिंग है जिसमें कुछ पूर्णांक हैं जो कॉमा से अलग हैं। हमें उन्हें अलग करना है और प्रत्येक पूर्णांक को अलग पंक्ति में प्रदर्शित करना है। ऐसा करने के लिए हम C++ में stringstream (sstream लाइब्रेरी के तहत) का उपयोग करेंगे। यह C++ में मौजूद एक स्ट्रिंग-आधारित स्ट्रीम क्लास है। हम एक्सट्रैक्शन ऑपरेटर (<<) का उपयोग कुछ निकालने के लिए, इंसर्शन ऑपरेटर (>>) का उपयोग कुछ डालने के लिए, और str() फंक्शन का उपयोग अंतर्निहित स्ट्रिंग डिवाइस ऑब्जेक्ट की सामग्री सेट करने के लिए कर सकते हैं।
उदाहरण के लिए, यदि इनपुट s = "56,9,85,256,47" है, तो आउटपुट होगा:
56 9 85 256 47
समाधान दृष्टिकोण
इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- take_int(string str) नामक एक सरणी परिभाषित करें
- ss नामक एक stringstream ऑब्जेक्ट बनाएं
- result नामक एक सरणी परिभाषित करें
- जब तक ss से tmp में नया पूर्णांक आइटम लिया जाता है जो null नहीं है:
- tmp को result के अंत में डालें
- कॉमा वर्ण को एक वर्ण निकालकर छोड़ें
- result लौटाएं
- मुख्य विधि से:
- integers = take_int(s) सरणी परिभाषित करें
- i := 0 से integers के आकार तक:
- integers[i] प्रदर्शित करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <iostream> #include <sstream> #include <vector> using namespace std; vector<int> take_int(string str) { stringstream ss(str); vector<int> result; char ch; int tmp; while(ss >> tmp) { result.push_back(tmp); ss >> ch; } return result; } int main(){ string s = "56,9,85,256,47"; vector<int> integers = take_int(s); for(int i = 0; i < integers.size(); i++) cout << integers[i] << "\n"; } इनपुट
56,9,85,256,47
आउटपुट
56 9 85 256 47