استخدام getline() لقراءة الكلمات من سلسلة في C++
بالتأكيد، يمكنك استخدام وظيفة getline()
لقراءة الكلمات من السلسلة التي قمت بتخزينها في مصفوفة. في المثال الذي قدمته، حينما تستخدم cin.getline(ch, 100)
، يتم قراءة السلسلة النصية من cin
وتخزينها في المصفوفة ch
، ولكن إذا كنت ترغب في قراءة الكلمات من هذه السلسلة دون استخدام فاصل، يمكنك استخدام stringstream
لتحقيق ذلك.
فيما يلي مثال على كيفية استخدام stringstream
لقراءة الكلمات من السلسلة وتخزينها في مصفوفة:
-
حل مشكلة setTimeout في JavaScript23/03/2024
-
كيفية عكس مقياس المحور السيني في R05/03/2024
-
فهم أهمية عمليات && و || في شيفرة Highstock29/02/2024
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()
للحصول على نسخة من المصفوفة كسلسلة وطباعتها. يمكنك بالتالي توسيع الاستفادة من هذه الأدوات لتلبية احتياجاتك الخاصة بمعالجة النصوص في البرنامج بشكل أفضل.