البرمجة

استخدام getline() لقراءة الكلمات من سلسلة في C++

بالتأكيد، يمكنك استخدام وظيفة getline() لقراءة الكلمات من السلسلة التي قمت بتخزينها في مصفوفة. في المثال الذي قدمته، حينما تستخدم cin.getline(ch, 100)، يتم قراءة السلسلة النصية من cin وتخزينها في المصفوفة ch، ولكن إذا كنت ترغب في قراءة الكلمات من هذه السلسلة دون استخدام فاصل، يمكنك استخدام stringstream لتحقيق ذلك.

فيما يلي مثال على كيفية استخدام stringstream لقراءة الكلمات من السلسلة وتخزينها في مصفوفة:

cpp
#include #include int main() { char ch[100], w[20]; // قراءة السلسلة وتخزينها في المصفوفة ch std::cin.getline(ch, 100); // إنشاء كائن stringstream باستخدام السلسلة ch std::stringstream ss(ch); int wordCount = 0; // قراءة الكلمات وتخزينها في المصفوفة w while (ss >> w) { // زيادة عدد الكلمات wordCount++; // يمكنك هنا إضافة أي عمليات أخرى ترغب في تنفيذها لكل كلمة } // طباعة عدد الكلمات std::cout << "عدد الكلمات في السلسلة: " << wordCount << std::endl; return 0; }

تم استخدام std::stringstream هنا لتحويل السلسلة ch إلى مدخل نصي، ومن ثم قراءة الكلمات باستخدام >>، مما يمكنك من عد الكلمات بدون استخدام فاصل. يمكنك تكييف هذا الكود حسب احتياجاتك وإضافة أي عمليات إضافية ترغب في تنفيذها لكل كلمة.

المزيد من المعلومات

بالتأكيد، سأقدم لك مزيدًا من المعلومات حول استخدام وظيفة getline() وstringstream في السي++.

تعتبر getline() وstringstream أدواتًا فعّالة لمعالجة النصوص في السي++. تمكنك getline() من قراءة سلسلة كاملة من الإدخال، بينما يوفر stringstream وسيلة لتحويل هذه السلسلة إلى نصوص فردية بناءً على فاصل معين، وهو في حالتك الخاصة الكلمات.

في الكود السابق، تم استخدام std::stringstream لتحويل السلسلة ch إلى مدخل نصي. الآن، يمكنك استخدام معلومات stringstream بشكل أكبر للتعامل مع النص بشكل متقدم. على سبيل المثال، يمكنك استخدام دالة str() للحصول على نسخة من المصفوفة كسلسلة، وهذا يفتح الباب لتنفيذ المزيد من العمليات على النص، مثل تنظيفه أو تعديله.

cpp
#include #include int main() { char ch[100], w[20]; // قراءة السلسلة وتخزينها في المصفوفة ch std::cin.getline(ch, 100); // إنشاء كائن stringstream باستخدام السلسلة ch std::stringstream ss(ch); int wordCount = 0; // قراءة الكلمات وتخزينها في المصفوفة w while (ss >> w) { // زيادة عدد الكلمات wordCount++; // يمكنك هنا إضافة أي عمليات أخرى ترغب في تنفيذها لكل كلمة } // طباعة عدد الكلمات std::cout << "عدد الكلمات في السلسلة: " << wordCount << std::endl; // الحصول على نسخة من المصفوفة كسلسلة وطباعتها std::string strCopy = ss.str(); std::cout << "نسخة من المصفوفة كسلسلة: " << strCopy << std::endl; return 0; }

هذا المثال يظهر كيف يمكنك استخدام str() للحصول على نسخة من المصفوفة كسلسلة وطباعتها. يمكنك بالتالي توسيع الاستفادة من هذه الأدوات لتلبية احتياجاتك الخاصة بمعالجة النصوص في البرنامج بشكل أفضل.

زر الذهاب إلى الأعلى