الخوارزميات و هياكل البيانات التحدي الثاني - حل التمرين الأول بلغة C++

المطلوب

قم بتعريف دالة إسمها RemoveAll, عند استدعاءها نمرر لها نصيّن, فترجع نسخة من النص لا تحتوي على النص الثاني.
بعدها قم بتجربة هذه الدالة في البرنامج.

مثال: إذا قمنا باستخدام الدالة RemoveAll() و تمرير النص "I like cats. I have one cat." و الكلمة "cat" لها فإنها سترجع النص "I like s. I have one .".


الحل بلغة C++

#include <iostream>
#include <string>

std::string removeAll(std::string s1, std::string s2) {

	int L1 = s1.length();
	int L2 = s2.length();
	std::string newS = "";

	for (int i = 0; i < L1;)
	{
		if (i <= L1 - L2 && s1.substr(i, L2) == s2)
		{
			i += L2;
		}
		else
		{
			newS += s1[i];
			i += 1;
		}

	}

	return newS;
}

int main() {

	std::string text = "I like cats. I have one cat.";
	std::string keyword = "cat";
	std::string newText = removeAll(text, keyword);

	std::cout << "Before: " << text << "\n";
	std::cout << "After:  " << newText << "\n";

	char end; std::cin >> end;
	return 0;

}
		

سنحصل على النتيجة التالية عند التشغيل.

Before: I like cats. I have one cat.
After:  I like s. I have one .
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة