با استفاده از تابع std::strcat در C++ دو رشتهٔ جداگانه که نمایندهٔ بخشهای یک عبارت ریاضی ساده (مثلاً "3.14", " * ", "r^2") هستند را به هم الحاق کنید و رشتهٔ نهایی را چاپ کنید.
6.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:15 0.0
برای حل این مسئله از آرایههای کاراکتری (char[]) و توابع مانند strcpy و strcat استفاده کنید: ابتدا یک بافر مقصد با سایز کافی تعریف و مقداردهی اولیه کنید، سپس با strcpy رشتهٔ اول را در آن قرار داده و با strcat رشتههای بعدی را الحاق کنید. دقت کنید بافر مقصد باید فضای لازم برای تمامی کاراکترها و خاتمهدهنده '\0' را داشته باشد؛ در عمل توصیه میشود از اندازهگیری طولها با strlen قبل از الحاق و یا استفاده از strncat برای جلوگیری از overflow استفاده کنید. برای خروجی میتوانید از std::cout یا printf استفاده کنید و به این نکته توجه کنید که در C++ استفاده از std::string ایمنتر است اما این تمرین با توابع C-style انجام میشود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای الحاق سه بخش یک عبارت، بافر مقصد را با طول مجموع طولهای سه رشته و یک کاراکتر برای '\0' آماده کنید تا از overflow جلوگیری شود. به جای strcat از strncat استفاده کنید و n را برابر با فضای بافر باقیمانده منهای طول فعلی بدهید تا فقط بخش مجاز اضافه شود. بهتر است طول هر رشته را با strlen بسنجید و از یک بافر مطمئن یا استفاده از std::string بهره ببرید تا خطاهای حافظه کاهش یابد. در نهایت برای کدی امنتر در C++ معمولاً استفاده از std::string سادهتر است، هرچند این تمرین با روش C-style انجام میشود.
گزارش