C++ में स्ट्रिंग में शब्दों पर कैसे iterate करें: स्ट्रिंग को टोकन में विभाजित करना
सभी को नमस्ते! मैं C++ में नौसिखिया हूँ (पहले Python में लिखता था) और मुझे एक ऐसी समस्या का सामना करना पड़ा जो बुनियादी लगती है लेकिन मुझे अटका देती है। मुझे एक स्ट्रिंग को अलग-अलग शब्दों में विभाजित करना है और उन पर लूप में चलना है। Python में यह एक लाइन में होता है: `for word in sentence.split():`। लेकिन C++ में यह काफी जटिल हो गया।
यहाँ मेरी समस्या का एक उदाहरण है। एक वाक्य के साथ एक स्ट्रिंग है:
```cpp
std::string text = "Hello, world! This is a test.";
```
मुझे प्रत्येक शब्द अलग-अलग प्राप्त करना है: "Hello,", "world!", "This", "is", "a", "test." (या विराम चिह्नों के बिना — यह विवरण है)। मैंने `std::stringstream` का उपयोग करने की कोशिश की:
```cpp
std::stringstream ss(text);
std::string word;
while (ss >> word) {
std::cout << word << std::endl;
}
```
यह काम करता है, लेकिन केवल तभी जब शब्द स्पेस से अलग हों। लेकिन अगर विभाजक अलग हों — कॉमा, डॉट, टैब — तो क्या करें? या अगर स्ट्रिंग CSV फ़ाइल से ली गई हो? इसके अलावा, खाली स्ट्रिंग या लगातार कई स्पेस वाली स्ट्रिंग को सही तरीके से कैसे संभालें? मैंने सुना है कि