یک تابع به زبان C++ بنویسید که دو رشته C-style (مثلاً نوع خطا و نام متغیر) و یک عدد خط را با استفاده از std::strcat از ترکیب کند تا پیغام خطایی به شکل "خطا: [نوع] در [نام] در خط [شماره]" تولید و چاپ کند.
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:47 0.0
برای حل، را وارد کنید و یک آرایهٔ مقصد با اندازهٔ کافی برای نگهداری رشتهٔ نهایی بسازید، آن را با '\0' مقداردهی اولیه کنید یا از std::strcpy برای قرار دادن بخش اول استفاده کرده و سپس با std::strcat بخشهای بعدی و جداکنندهها را اضافه کنید. عدد خط را با استفاده از sprintf یا snprintf (از ) به یک آرایهٔ کاراکتری تبدیل کنید تا بتوانید آن را با std::strcat وصل کنید؛ همیشه حداکثر طول بافر را در نظر بگیرید و برای جلوگیری از overflow از نسخههای ایمنتر مانند snprintf یا بررسی طول قبل از strcat استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای ایمنی بافر از snprintf استفاده کنید و اندازهٔ بافر نهایی را دقیقاً بررسی کنید تا از overflow جلوگیری شود. قبل از کپی یا اتصال، طول هر بخش را چک کنید یا از فرمتشدههای امن استفاده کنید. اگر امکان دارد، به جای کار با C-strings از std::string استفاده کنید تا کار با حافظه سادهتر و امنتر باشد. مقصد را با مقداردهی اولیه درست مثل dest[0] = '\0' یا استفاده از رشتهٔ خالی آغاز کنید تا پیغام بهطور صحیح ساخته شود.
گزارش