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

المطلوب

قم بتعريف دالة إسمها CountNoneEscapeChars, عند استدعاءها نمرر لها نص, فترجع عدد الأحرف الموجودة في هذا النص.
ملاحظة: أي حرف يعتبر Escape Character مثل الأحرف \t و \n إلخ.. لا يجب أن يتم حساب عددهم ضمن عدد الأحرف.
يمكنك إستخدام الـ Regex للتمييز بين الأحرف العادية و الأحرف التي تعتبر Escape Characters.

مثال: إذا قمنا باستخدام الدالة CountNoneEscapeChars() و تمرير النص "Hi Lora.\nHow are you?." فإنها سترجع الرقم 18.


الحل بلغة C++

#include <iostream>
#include <string>
#include <regex>

static int countNoneEscapeChars(std::string s) {

	if (s.empty())
	{
		return 0;
	}

	int counter = 0;
	std::string character = "";
	std::regex regex("\\S");
	
	for (int i = 0; i < s.length(); i++)
	{
		character = s[i];
		if ( std::regex_match(character, regex) )
		{
			counter++;
		}
	}

	return counter;

}

int main() {

	std::string text = "Hi Lora.\nHow are you?.";
	int numberOfNoneEscapeChars = countNoneEscapeChars(text);

	std::cout << "Total characters: " << numberOfNoneEscapeChars;

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

}
		

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

Total characters: 18
		

الدورات

أدوات مساعدة

أقسام الموقع

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