تحديات برمجيةالتحدي الثالث - حل التمرين الثاني بلغة C++
المطلوب
قم بتعريف دالة إسمها CountNoneEscapeChars
, عند استدعاءها نمرر لها نص, فترجع عدد الأحرف الموجودة في هذا النص.
ملاحظة: أي حرف يعتبر Escape Character مثل الأحرف \t
و \n
إلخ.. لا يجب أن يتم حساب عددهم ضمن عدد الأحرف.
يمكنك إستخدام الـ Regex للتمييز بين الأحرف العادية و الأحرف التي تعتبر Escape Characters.
مثال: إذا قمنا باستخدام الدالة CountNoneEscapeChars()
و تمرير النص "Hi Lora.\nHow are you?."
فإنها سترجع الرقم 18.
الحل بلغة C++
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