یک برنامه به زبان C++ بنویسید که یک رشتهٔ ساده از کد را گرفته و با استفاده از الگوهای regex توکن‌های پایه مثل کلیدواژه‌ها، شناسه‌ها، اعداد، عملگرها و پرانتزها را استخراج کرده و هر توکن را همراه نوع آن در یک خط چاپ کند.

1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:34

0.0

برای حل این مسئله می‌توانید از کتابخانهٔ استاندارد در C++ استفاده کنید: الگوهای مجزا برای کلیدواژه‌ها (مثلاً if|else|for|while|return)، شناسه‌ها ([A-Za-z_][A-Za-z0-9_]*), اعداد (\d+(\.\d+)?), عملگرها (==|!=|=|[+\-*/%=]) و جداکننده‌ها/پرانتزها را با یک الگوی ترکیبی (alternation) بسازید. از std::sregex_iterator برای پیمایش تمام تطابق‌ها استفاده کنید، ترتیب الگوها مهم است (کلیدواژه‌ها قبل از شناسه‌ها) و فاصله‌ها را نادیده بگیرید؛ نتایج را با نوع مربوطه چاپ کنید. این کار شبیه یک مرحلهٔ سادهٔ تحلیل‌واژه‌ای (lexical analysis) در کامپایلرها/مفسرها است.

توسط پژوهشگر در 221 روز قبل ساعت 01:34
دسته بندی ها: C Plus Plus C Plus Plus for beginner
reyhaneh در 221 روز قبل ساعت 12:48

برای این کار رعایت کنید که کلیدواژه‌ها را قبل از شناسه‌ها در الگوها قرار دهید تا از طبقه‌بندی اشتباه جلوگیری شود. از std::sregex_iterator برای پیمایش تطابق‌ها استفاده کنید و فاصله‌ها را با یک الگو نادیده بگیرید تا توکن‌ها به درستی استخراج شوند. الگوی ترکیبی با alternation بسازید: کلیدواژه‌ها|شناسه|عدد|عملگرها|پرانترها و از \d+(?:\.\d+)? برای اعداد اعشاری استفاده کنید. همچنین به ترتیب اجرا و موقعیت‌های متنی هر توکن دقت کنید تا بتوانید در دیباگ یا نمایش خط دقیق‌تر عمل کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری