با استفاده از std::strtok از هدر برنامه‌ای بنویسید که یک رشته حاوی یک عبارت عددی ساده (اعداد صحیح و عملگرهای + - * /، بدون پرانتز) را دریافت کرده و هر توکن (اعداد و عملگرها) را در یک خط جدا چاپ کند.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:19

0.0

برای حل این مسئله می‌توانید ابتدا با عبور از رشته ورودی، قبل و بعد از هر عملگر یک فاصله اضافه کنید تا توکن‌ها از هم جدا شوند، سپس از std::strtok با جداکنندهٔ فاصله (" ") برای استخراج توکن‌ها استفاده کنید. توجه داشته باشید که std::strtok بر روی آرایهٔ قابل تغییر از کاراکترها عمل می‌کند؛ بنابراین از یک کپی قابل تغییر از std::string (مثلاً با انتقال به std::vector و اضافه کردن '\0') استفاده کنید. نکات: هدرها و را وارد کنید، و مطمئن شوید که توکن‌ها به ترتیب ورودی چاپ شوند و رشتهٔ خالی نادیده گرفته شود.

توسط پژوهشگر در 221 روز قبل ساعت 01:19
دسته بندی ها: C Plus Plus C Plus Plus for beginner
reyhaneh در 221 روز قبل ساعت 13:43

نکتهٔ کلیدی این است که strtok روی آرایهٔ کاراکتریِ قابل تغییر کار می‌کند، پس رشتهٔ ورودی را به بافری قابل تغییر منتقل کنید و پایان را با '\0' تعیین کنید. با افزودن فاصلهٔ اضافی قبل و بعد از هر عملگر، توکن‌ها به‌درستی از هم جدا می‌شوند و می‌توانید با strtok روی فضای خالی توکن‌ها را استخراج کنید. توجه کنید توکن‌های خالی را نادیده بگیرید تا خروجی مرتب باشد. همچنین خروجی باید به ترتیب ورودی چاپ شود و هر توکن در یک خط جداگانه نمایش داده شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری