Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

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