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