یک برنامهٔ C++ بنویسید که یک std::wstring ورودی دریافت کند، آن را به توکنهای «شناسه» (حروف/زیرخط بههمراه حروف/اعداد)، «عدد» (اعداد صحیح یا اعشاری ساده) و «نماد/فضا» تجزیه کند، شناسهها را با استفاده از توابع به حروف کوچک تبدیل کند و در پایان شمار هر نوع توکن را چاپ کند.
1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:52 0.0
برای حل این مسئله از std::wstring برای ورودی و توابع مانند iswalpha، iswdigit، iswspace و towlower برای تشخیص و تبدیل کاراکترها استفاده کنید. یک حلقهٔ ساده روی رشته پیادهسازی کنید که با استفاده از حالتهای ساده (در حال خواندن شناسه، عدد یا پرش روی فضا/نماد) توکنها را استخراج کند؛ برای اعداد اعشاری تنها یک نقطه را مجاز بدانید. در پایان شمار هر دسته را چاپ کنید. توجه کنید که برای کار با ورودی/خروجی گسترده ممکن است لازم باشد محلی (locale) مناسب تنظیم شود (مثلاً setlocale) تا توابع wide کاراکترها درست عمل کنند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای کار با std::wstring و توابع wide مانند iswalpha/iswdigit/iswspace باید locale مناسب را فعال کنید تا کاراکترها به درستی تشخیص داده شوند. یک پیادهسازی ساده با یک حلقه و حالتهای شناسه، عدد و نماد/فضا پیشنهاد میشود و در شناسه با towlower کاراکترها را به حروف کوچک تبدیل کنیم. برای اعداد تنها یک نقطه مجاز است و باید به علامتهای منفی/مثبت در ابتدای عدد توجه کرد. در پایان شمار هر دسته را چاپ کنید و مطمئن باشید تنظیم locale و IO مناسب از بروز اشکال جلوگیری میکند.
گزارش