البرمجة

تقسيم السلاسل النصية في C++ بدون تجزئة الكلمات

في لغة البرمجة C++، يمكنك تحقيق هدفك باستخدام بعض الخوارزميات البسيطة والكود المنظم. للقيام بذلك، يمكنك كتابة دالة خاصة لتقسيم السلسلة النصية إلى مصفوفة من السلاسل بطول محدد دون تفكيك أي كلمة. فيما يلي مثال على كيفية تحقيق ذلك في C++:

cpp
#include #include #include std::vector splitString(const std::string& input, int maxLength) { std::vector result; std::istringstream iss(input); std::string word, line; while (iss >> word) { if (line.length() + word.length() <= maxLength) { line += (word + " "); } else { result.push_back(line); line = (word + " "); } } if (!line.empty()) { result.push_back(line); } return result; } int main() { std::string inputString = "I need to split input string"; int maxLength = 10; std::vector outputArray = splitString(inputString, maxLength); // عرض نتيجة الانقسام std::cout << "Output Array: {"; for (const auto& str : outputArray) { std::cout << "\"" << str << "\", "; } std::cout << "}" << std::endl; return 0; }

هذا الكود يستخدم std::istringstream لتحليل السلسلة النصية إلى كلمات، ثم يقوم بتقسيمها إلى سلاسل فرعية بطول لا يتجاوز maxLength دون تقسيم أي كلمة. يتم تخزين النتائج في مصفوفة من السلاسل، ويمكنك تعديل قيمة maxLength والسلسلة النصية حسب احتياجاتك.

هذا النموذج يساعدك في تحقيق هدفك بشكل فعال وفعّال في C++.

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

في هذا السياق، يعتبر الكود الذي تم توفيره نموذجًا بسيطًا يوضح كيف يمكن تحقيق الهدف المطلوب باستخدام لغة البرمجة C++. لكن لنضيف المزيد من التوضيح والتفصيل:

  1. الوظيفة splitString:

    • تقوم بتقسيم السلسلة النصية الأصلية إلى سلاسل فرعية باستخدام std::istringstream.
    • تُنشئ مصفوفة لتخزين النتائج النهائية.
    • تقوم بفحص كل كلمة وتحديد ما إذا كانت يمكن إضافتها إلى السلسلة الحالية دون تجاوز الحد الأقصى المحدد (maxLength).
    • إذا تجاوزت الحد، يتم إضافة السلسلة الحالية إلى المصفوفة وبدء سلسلة جديدة.
  2. الدالة main:

    • تقوم بتحديد السلسلة النصية الأصلية والحد الأقصى (maxLength).
    • تستدعي الدالة splitString لتحليل السلسلة والحصول على النتائج.
    • تقوم بعرض النتائج على الإخراج القياسي باستخدام std::cout.
  3. المكتبات المستخدمة:

    • #include : للعمليات القياسية للإدخال والإخراج.
    • #include : لاستخدام الفئة std::vector التي تُستخدم لتخزين النتائج.
    • #include : لاستخدام الفئة std::istringstream التي تُستخدم لتقسيم السلسلة إلى كلمات.
  4. التعديلات:

    • يمكنك تغيير قيمة maxLength لتحديد الحد الأقصى لطول كل سلسلة فرعية.
    • يمكنك استبدال السلسلة النصية المستخدمة في المثال بأي نص تريده لاختبار الكود مع إدخالات مختلفة.
  5. الإضافات المحتملة:

    • يمكنك تحسين الكود بإضافة التحقق من صحة البيانات والتعامل مع حالات الحد الأقصى الصفري أو السلسلة الفارغة.
    • يمكنك استخدام تقنيات أكثر تقدمًا لتحسين أداء الكود أو دعم ميزات إضافية حسب احتياجات المشروع.

هذا الشرح يقدم لك فهمًا أعمق حول كيفية عمل الكود وكيف يمكنك تخصيصه لتلبية احتياجاتك الخاصة في تقسيم السلاسل النصية في لغة البرمجة C++.

مقالات ذات صلة

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

المحتوى محمي من النسخ !!