یک برنامه C++ بنویسید که یک رشته ورودی میگیرد و با استفاده از std::strncmp بررسی کند که آیا رشته با یکی از توابع ریاضی "sin"، "cos" یا "exp" آغاز میشود و در صورت مطابقت نام تابع را چاپ کند و در غیر این صورت "unknown" را چاپ کند.
10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:44 0.0
برای حل این مسئله از هدر و تابع std::strncmp استفاده کنید: ابتدا رشته را به std::string خوانده و با s.c_str() به رشتهٔ C تبدیل کنید، سپس برای هر پیشوند مورد نظر مقدار مناسب طول را به std::strncmp بدهید (مثلاً 3 برای "sin" و "cos" و 3 برای "exp"). دقت کنید که ممکن است لازم باشد فاصلههای ابتدایی را حذف کنید یا حساسیت به حروف بزرگ/کوچک را مدیریت کنید؛ خروجی ساده و خواندن از ورودی استاندارد کافی است. این روش در تحلیل لغتها (lexing) برای مفسرها و تشخیص توابع در محاسبات علمی کاربردی است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای این کار از std::strncmp استفاده کنید و پیشوندهای sin، cos و exp را با طول 3 مقایسه کنید. ورودی را به std::string بخوانید و با s.c_str() به رشتهٔ C تبدیل کنید تا مقایسه با strncmp میسر باشد. توجه کنید که این تابع نسبت به حروف بزرگ/کوچک حساس است، بنابراین یا ورودی را به یکسان تبدیل کنید یا حساسیت را مدیریت کنید. همچنین به حذف فاصلههای ابتدایی و کاراکترهای غیر متنی قبل از مقایسه فکر کنید تا تشخیص پیشوند دقیق انجام شود.
گزارش