تقسيم السلاسل النصية في 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
والسلسلة النصية حسب احتياجاتك.
-
أهمية استخدام عامل ‘===’ في JavaScript21/02/2024
-
تعديل بيانات الأشخاص في C#16/03/2024
-
تحويل وتنسيق java.sql.Timestamp بسهولة04/02/2024
هذا النموذج يساعدك في تحقيق هدفك بشكل فعال وفعّال في C++.
المزيد من المعلومات
في هذا السياق، يعتبر الكود الذي تم توفيره نموذجًا بسيطًا يوضح كيف يمكن تحقيق الهدف المطلوب باستخدام لغة البرمجة C++. لكن لنضيف المزيد من التوضيح والتفصيل:
-
الوظيفة
splitString
:- تقوم بتقسيم السلسلة النصية الأصلية إلى سلاسل فرعية باستخدام
std::istringstream
. - تُنشئ مصفوفة لتخزين النتائج النهائية.
- تقوم بفحص كل كلمة وتحديد ما إذا كانت يمكن إضافتها إلى السلسلة الحالية دون تجاوز الحد الأقصى المحدد (
maxLength
). - إذا تجاوزت الحد، يتم إضافة السلسلة الحالية إلى المصفوفة وبدء سلسلة جديدة.
- تقوم بتقسيم السلسلة النصية الأصلية إلى سلاسل فرعية باستخدام
-
الدالة
main
:- تقوم بتحديد السلسلة النصية الأصلية والحد الأقصى (
maxLength
). - تستدعي الدالة
splitString
لتحليل السلسلة والحصول على النتائج. - تقوم بعرض النتائج على الإخراج القياسي باستخدام
std::cout
.
- تقوم بتحديد السلسلة النصية الأصلية والحد الأقصى (
-
المكتبات المستخدمة:
#include
: للعمليات القياسية للإدخال والإخراج.#include
: لاستخدام الفئةstd::vector
التي تُستخدم لتخزين النتائج.#include
: لاستخدام الفئةstd::istringstream
التي تُستخدم لتقسيم السلسلة إلى كلمات.
-
التعديلات:
- يمكنك تغيير قيمة
maxLength
لتحديد الحد الأقصى لطول كل سلسلة فرعية. - يمكنك استبدال السلسلة النصية المستخدمة في المثال بأي نص تريده لاختبار الكود مع إدخالات مختلفة.
- يمكنك تغيير قيمة
-
الإضافات المحتملة:
- يمكنك تحسين الكود بإضافة التحقق من صحة البيانات والتعامل مع حالات الحد الأقصى الصفري أو السلسلة الفارغة.
- يمكنك استخدام تقنيات أكثر تقدمًا لتحسين أداء الكود أو دعم ميزات إضافية حسب احتياجات المشروع.
هذا الشرح يقدم لك فهمًا أعمق حول كيفية عمل الكود وكيف يمكنك تخصيصه لتلبية احتياجاتك الخاصة في تقسيم السلاسل النصية في لغة البرمجة C++.