یک برنامهٔ C++ بنویسید که یک رشتهٔ ورودی را با استفاده از regex بررسی کند و تعیین کند آیا رشته یک شناسهٔ معتبر در زبانهای برنامهنویسی ساده است (شروع با حرف یا زیرخط و سپس شامل حروف، ارقام یا زیرخط) یا خیر.
7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:27 0.0
برای حل این مسئله از هدر در C++ و تابع std::regex_match استفاده کنید؛ الگوی مناسب میتواند "^[A-Za-z_][A-Za-z0-9_]*$" باشد که در C++ بهتر است به صورت رشتهٔ خام R"(^[A-Za-z_][A-Za-z0-9_]*$)" نوشته شود تا نیازی به فرارکاراکترها نباشد. این تمرین مشابه کاری است که یک lexer در کامپایلر یا مفسر انجام میدهد (تشخیص توکنها)، پس توجه کنید که قبل از بررسی فضای اضافی را حذف کنید و از std::regex_match برای تطابق کامل استفاده کنید؛ چند نمونهٔ ورودی معتبر مانند "_var1" یا "abc" و نامعتبر مانند "1abc" را برای آزمون برنامه در نظر بگیرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ مفید: استفاده از std::regex_match با الگوی خام R"(^[A-Za-z_][A-Za-z0-9_]*$)" بهسادگی اعتبار شناسه را میسنجد. قبل از تطبیق، رشته را با trim کردن فضاهای اطراف تمیز کنید تا با ورودیهای دارای فاصلهٔ اضافی اشتباه نشود. بهخاطر سازگاری با نسخههای مختلف C++، مطمئن شوید که پیادهسازیٔ کتابخانهٔ استاندارد شما از regex پشتیبانی میکند. نمونههای ورودی: معتبر - "_var1" یا "abc"؛ نامعتبر - "1abc".
گزارش