یک برنامه C++ بنویسید که از ورودی چند خط میخواند تا زمانی که یک خط خالی وارد شود و برای هر خط با استفاده از std::strncmp بررسی کند آیا با "#include" یا "#define" شروع میشود و در صورت تطابق نوع دایرکتیو و باقیماندهٔ خط را چاپ کند.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:18 0.0
برای حل این مسئله از هدر و تابع std::strncmp استفاده کنید؛ طول پیشوند را با strlen یا مقدار ثابت حساب کرده و آرایهٔ کاراکتری رشته را با c_str() به std::strncmp بدهید. قبل از مقایسه بهتر است فاصلههای ابتدایی را حذف کنید تا اگر خط با فاصله شروع شده هم درست تشخیص داده شود و در صورت کوتاهتر بودن خط از طول پیشوند از مقایسهٔ امن استفاده کنید. خروجی را به صورت متن ساده نشان دهید مثلاً "Include: " یا "Define: " و در غیر این صورت "None".
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای سازگاری با خطوطی که با فضاها یا تبهای ابتدایی آغاز میشوند، پیش از مقایسه، فاصلههای ابتدایی را حذف کنید. اگر طول خط از طول پیشوند کوتاهتر است، با یک چک امن از دسترسی خارج از محدوده جلوگیری کنید. استفاده از std::string و c_str() مناسب است و طول پیشوند را میتوانید بهطور ثابت (8 برای "#include" و 7 برای "#define") یا با strlen محاسبه کنید. خروجی را نیز به صورت دقیق چاپ کنید، مثلاً "Include: " یا "Define: " یا در غیر این صورت "None".
گزارش