یک برنامه 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) برای مفسرها و تشخیص توابع در محاسبات علمی کاربردی است.

توسط پژوهشگر در 201 روز قبل ساعت 03:44
دسته بندی ها: C Plus Plus C Plus Plus for beginner
nima در 201 روز قبل ساعت 05:25

برای این کار از std::strncmp استفاده کنید و پیشوندهای sin، cos و exp را با طول 3 مقایسه کنید. ورودی را به std::string بخوانید و با s.c_str() به رشتهٔ C تبدیل کنید تا مقایسه با strncmp میسر باشد. توجه کنید که این تابع نسبت به حروف بزرگ/کوچک حساس است، بنابراین یا ورودی را به یکسان تبدیل کنید یا حساسیت را مدیریت کنید. همچنین به حذف فاصله‌های ابتدایی و کاراکترهای غیر متنی قبل از مقایسه فکر کنید تا تشخیص پیشوند دقیق انجام شود.

گزارش

1 پاسخ

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

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