یک برنامهٔ C++ بنویسید که یک رشتهٔ ورودی را گرفته و با استفاده از std::strrchr در آخرین نقطهٔ '.' را پیدا کرده و اندیس آن را چاپ کند (در صورت نبودن '.' عدد -1 را چاپ کند).
11.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 03:09 0.0
برای حل، رشتهٔ ورودی را به std::string بخوانید و با تابع std::strrchr از هدر روی رشتهی c_str() آن آخرین ظاهر شدن کاراکتر '.' را جستوجو کنید؛ اگر اشارهگر بازگشتی nullptr بود، خروجی -1 باشد و در غیر این صورت با کم کردن آدرس شروع رشته از اشارهگر موقعیت (index) را محاسبه و چاپ کنید. نکات: حتماً را include کنید، نتیجهٔ std::string::c_str() را به const char* بدهید و برای تبدیل اشارهگر به اندیس از تفریق پوینترها استفاده کنید؛ این روش در مسایل سادهٔ پارس کردن پسوند فایل یا تحلیل عددهای اعشاری مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای یافتن آخرین نقطهٔ '.' در یک رشتهٔ ورودی با استفاده از std::strrchr، رشته را به c_str() تبدیل کنید و در هدر <cstring> فراخوانی کنید. اگر مقدار بازگشتی nullptr بود، خروجی -1 چاپ کنید؛ در غیر این صورت با تفریق آدرس شروع رشته از آدرس بازگشتی، اندیس '.' را به دست آورید و چاپ کنید. توجه کنید که strrchr روی C-string کار میکند؛ اگر رشتهٔ شما کاراکتر '\0' داخلی داشته باشد، جستجو قبل از آن متوقف میشود. این روش برای تحلیل پسوندها و کارهای سادهٔ پارس کردن مناسب است و به تفصیل به اندازهٔ طول رشته منتهی میشود.
گزارش