تحديات برمجيةالتحدي الثاني - حل التمرين الرابع بلغة 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