با استفاده از std::strtok از هدر برنامهای بنویسید که یک رشته حاوی یک عبارت عددی ساده (اعداد صحیح و عملگرهای + - * /، بدون پرانتز) را دریافت کرده و هر توکن (اعداد و عملگرها) را در یک خط جدا چاپ کند.
2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:19 0.0
برای حل این مسئله میتوانید ابتدا با عبور از رشته ورودی، قبل و بعد از هر عملگر یک فاصله اضافه کنید تا توکنها از هم جدا شوند، سپس از std::strtok با جداکنندهٔ فاصله (" ") برای استخراج توکنها استفاده کنید. توجه داشته باشید که std::strtok بر روی آرایهٔ قابل تغییر از کاراکترها عمل میکند؛ بنابراین از یک کپی قابل تغییر از std::string (مثلاً با انتقال به std::vector و اضافه کردن '\0') استفاده کنید. نکات: هدرها و را وارد کنید، و مطمئن شوید که توکنها به ترتیب ورودی چاپ شوند و رشتهٔ خالی نادیده گرفته شود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ کلیدی این است که strtok روی آرایهٔ کاراکتریِ قابل تغییر کار میکند، پس رشتهٔ ورودی را به بافری قابل تغییر منتقل کنید و پایان را با '\0' تعیین کنید. با افزودن فاصلهٔ اضافی قبل و بعد از هر عملگر، توکنها بهدرستی از هم جدا میشوند و میتوانید با strtok روی فضای خالی توکنها را استخراج کنید. توجه کنید توکنهای خالی را نادیده بگیرید تا خروجی مرتب باشد. همچنین خروجی باید به ترتیب ورودی چاپ شود و هر توکن در یک خط جداگانه نمایش داده شود.
گزارش