تحديات برمجيةالتحدي الثاني - حل التمرين الرابع بلغة C++
المطلوب
قم بإنشاء برنامج يطلب من المستخدم إدخال ثلاث نصوص و يخزنهم في ثلاث متغيرات نصية هي S1
, S2
و S3
و بعدها ينفذ التالي:
- يخبره ما إن كان دمج
S1
معS2
يساويS3
أم لا. - يخبره ما إن كان
S1
يمثل جزء منS2
أو يساويه ( أيS1 == s2
). - إذا كان طول
S1
أكبر من طولS2
قم بإضافة نصS2
علىS1
و خزن الناتج في متغير نصي جديد إسمهS4
. - إذا كان طول
S2
أكبر من طولS1
قم بإضافة نصS1
علىS2
و خزن الناتج في متغير نصي جديد إسمهS4
. - يخبره ما إن كان
S2
يمثل جزء من ثاني نصف فيS1
. - يعرض له الأحرف الموجودة في أول نصف في
S1
.
الحل بلغة C++
int main() { std::string S1, S2, S3, S4=""; std::cout << "Enter S1: "; getline(std::cin, S1); std::cout << "Enter S2: "; getline(std::cin, S2); std::cout << "Enter S3: "; getline(std::cin, S3); std::cout << "---------------------------------------\n"; // Part 1 std::cout << "The concatenation of S1 and S2 is equal S3? " << ((S3 == (S1 + S2)) ? "True" : "False") << "\n"; // Part 2 std::cout << "S1 is part of S2 or S1=S2? " << ((S2.find(S1, 0) != std::string::npos) ? "True" : "False") << "\n"; // Part 3 if (S1.length() > S2.length()) { S4 = S2 + S1; } // Part 4 if (S2.length() > S1.length()) { S4 = S1 + S2; } // Part 5 std::cout << "S2 is part of the second half of S1? " << ((S1.find(S2, S1.length() / 2) != std::string::npos) ? "True" : "False") << "\n"; // Part 6 std::cout << "The first half characters of S1 are: "; for (int i = 0; i < S1.length() / 2; i++) { std::cout << S1[i]; } char end; std::cin >> end; return 0; }
سنحصل على النتيجة التالية في حال تم إدخال نفس القيم التي تم تعليمها باللون الأصفر عند التشغيل.
Enter S1: Mhamad
Enter S2: Harmush
Enter S3: MhamadHarmush
---------------------------------------
The concatenation of S1 and S2 is equal S3? True
S1 is part of S2 or S1=S2? False
S2 is part of the second half of S1? False
The first half characters of S1 are: Mha
Enter S2: Harmush
Enter S3: MhamadHarmush
---------------------------------------
The concatenation of S1 and S2 is equal S3? True
S1 is part of S2 or S1=S2? False
S2 is part of the second half of S1? False
The first half characters of S1 are: Mha