یک برنامهٔ C++ بنویسید که یک رشتهٔ wide (std::wstring) از ورودی گرفته، با استفاده از توابع موجود در همهٔ حروف را به حروف بزرگ تبدیل کند و سپس تعداد کلمههایی که فقط از حروف الفبا تشکیل شدهاند را چاپ کند.
5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:40 0.0
برای حل، از std::wstring و wcin/wcout استفاده کنید و رشته را کاراکتر به کاراکتر پردازش کنید: اگر iswalpha کاراکتر بود با towupper آن را به بزرگ تبدیل کرده و به رشتهٔ جدید اضافه کنید، در غیر این صورت آن را با فاصله جایگزین کنید تا جداسازی کلمات ساده شود. سپس با یک std::wstringstream یا اسکن دستی رشتهٔ نرمالشده را به کلمهها تقسیم کرده و هر کلمهای که شامل حداقل یک حرف و فقط حروف باشد را شمارش کنید. از هدر برای iswalpha و towupper و در صورت نیاز از setlocale/locale برای پشتیبانی از نویسههای محلی استفاده کنید؛ هدرهای مفید دیگر , , هستند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پشتیبانی مناسب از نویسههای یونیکد، قبل از استفاده از iswalpha و towupper Locale را تنظیم کنید (مثلاً setlocale(LC_ALL, "") یا imbue(std::locale(""))). اطمینان حاصل کنید از <cwctype> استفاده میکنید و با std::wstring و wcin/wcout کار میکنید تا کاراکترها را به حروف بزرگ تبدیل کنید. هنگام پردازش رشته، فقط کاراکترهای الفبا را به حروف بزرگ تبدیل و سایر کاراکترها را با فاصله جایگزین کنید تا جداسازی کلمات ساده شود. سپس با std::wstringstream کلمهها را بشمارید و تنها کلماتی را حساب کنید که از حداقل یک حرف تشکیل شده و هیچگونه کاراکتر غیرحرفی ندارند.
گزارش