كيفية تكرار الكلمات في سلسلة نصية في C++: تحليل الطرق الشائعة
```html
ترجمة
السلام عليكم! أنا مبتدئ في C++ ولا أستطيع فهم كيفية تقسيم السلسلة النصية إلى كلمات منفصلة والتكرار عليها في حلقة. في Python يتم ذلك بسطر واحد عبر `split()`، أما في C++ فالأمر معقد نوعًا ما.
لدي سلسلة نصية من النوع: `"Привет, как дела? У меня всё хорошо!"` أريد إخراج كل كلمة على حدة، متجاهلاً علامات الترقيم والمسافات. جربت استخدام `std::stringstream` لكنه لا يزيل الفواصل وعلامات الاستفهام — فهي تلتصق بالكلمات. على سبيل المثال، يظهر `"Привет,"` بدلاً من `"Привет"`.
حاولت كتابة حل خاص بي بالبحث اليدوي عن المسافات عبر `std::string::find`، لكن الكود أصبح ضخمًا ومعقدًا. علاوة على ذلك، لا يعمل إصدارتي مع علامات التبويب والمسافات المتعددة.
أرجو إرشادي، كيف يمكن فعل ذلك بطريقة صحيحة وجميلة؟ يُفضل بلغة C++ الحديثة (11/14/17). يُرجى تقديم مثال كود يقوم بما يلي:
1. تقسيم السلسلة النصية إلى كلمات بناءً على المسافات وعلامات الترقيم.
2. تجاهل المسافات الزائدة والسلاسل الفارغة.
3. يعمل.
```