یک برنامهٔ C++ بنویسید که یک رشتهٔ wide (std::wstring) از ورودی گرفته، با استفاده از توابع موجود در همهٔ حروف را به حروف بزرگ تبدیل کند و سپس تعداد کلمه‌هایی که فقط از حروف الفبا تشکیل شده‌اند را چاپ کند.

5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:40

0.0

برای حل، از std::wstring و wcin/wcout استفاده کنید و رشته را کاراکتر به کاراکتر پردازش کنید: اگر iswalpha کاراکتر بود با towupper آن را به بزرگ تبدیل کرده و به رشتهٔ جدید اضافه کنید، در غیر این صورت آن را با فاصله جایگزین کنید تا جداسازی کلمات ساده شود. سپس با یک std::wstringstream یا اسکن دستی رشتهٔ نرمال‌شده را به کلمه‌ها تقسیم کرده و هر کلمه‌ای که شامل حداقل یک حرف و فقط حروف باشد را شمارش کنید. از هدر برای iswalpha و towupper و در صورت نیاز از setlocale/locale برای پشتیبانی از نویسه‌های محلی استفاده کنید؛ هدرهای مفید دیگر , , هستند.

توسط پژوهشگر در 202 روز قبل ساعت 02:40
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 202 روز قبل ساعت 08:53

برای پشتیبانی مناسب از نویسه‌های یونیکد، قبل از استفاده از iswalpha و towupper Locale را تنظیم کنید (مثلاً setlocale(LC_ALL, "") یا imbue(std::locale(""))). اطمینان حاصل کنید از <cwctype> استفاده می‌کنید و با std::wstring و wcin/wcout کار می‌کنید تا کاراکترها را به حروف بزرگ تبدیل کنید. هنگام پردازش رشته، فقط کاراکترهای الفبا را به حروف بزرگ تبدیل و سایر کاراکترها را با فاصله جایگزین کنید تا جداسازی کلمات ساده شود. سپس با std::wstringstream کلمه‌ها را بشمارید و تنها کلماتی را حساب کنید که از حداقل یک حرف تشکیل شده و هیچ‌گونه کاراکتر غیرحرفی ندارند.

گزارش

1 پاسخ

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

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