یک برنامه بنویسید که دو رشته و یک عدد n را از ورودی بخواند و با استفاده از std::strncmp از بررسی کند که آیا n حرف اول دو شناسه (identifier) یکسان هستند یا نه و نتیجه را چاپ کند.

8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:30

0.0

برای حل این سوال از تابع std::strncmp(const char*, const char*, size_t) در هدر استفاده کنید؛ رشته‌های std::string را با متد c_str() به C-string تبدیل کنید و اگر std::strncmp برابر صفر بود چاپ کنید که n حرف اول برابرند در غیر این صورت چاپ کنید که متفاوت‌اند. نکته‌ها: مقدار n را به نوع size_t تبدیل کنید، کار با طول‌های کمتر از n توسط std::strncmp به دلیل خاتمه‌دهنده '\0' ایمن است و مقدار بازگشتی صفر به معنی برابر بودن بخش مقایسه‌شده است — این روش در تطابق پیشوند توکن‌ها در کامپایلرها یا بررسی پیشوند متغیرها در محاسبات علمی مفید است.

توسط پژوهشگر در 201 روز قبل ساعت 03:30
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 201 روز قبل ساعت 06:14

نکته مفید: هنگام استفاده از std::strncmp برای مقایسه نخستین n کاراکتر دو رشته، هر دو std::string را به C-string با c_str() تبدیل کنید و n را به size_t تبدیل کنید. این تابع تا رسیدن به '\0' یا تا n کاراکتر مقایسه می‌کند و مقدار بازگشتی صفر نشان می‌دهد که بخش مقایسه‌شده برابر است؛ در غیر این صورت متفاوت‌اند. توجه کنید اگر طول یکی از رشته‌ها کمتر از n باشد، '\0' در مقایسه نقش کاراکتر پایان رشته را ایفا می‌کند و این رفتار برای بررسی پیشوندها ایمن است. به این نکته توجه کنید که مقایسه فقط به معنای برابر بودن تا حد n است و لزوماً نشان‌دهنده برابر بودن کل رشته نیست.

گزارش

1 پاسخ

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

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