یک برنامه C++ بنویسید که یک wstring ورودی بگیرد، تمام حروف را به حروف کوچک تبدیل کند، کاراکترهای غیرحروف‌وعدد را حذف کند و تعداد حروف، ارقام و کاراکترهای حذف‌شده را چاپ کند.

4.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:15

0.0

برای حل، از std::wstring برای رشته‌ی پهن و از توابع موجود در هدر مانند iswalpha، iswdigit و towlower استفاده کنید؛ ابتدا locale مناسب را تنظیم کنید (مثلاً std::locale::global(std::locale(""))) تا ورودی‌های یونی‌کد درست خوانده شوند، سپس با یک حلقه روی هر wchar_t عمل کنید: اگر iswalpha بود با towlower آن را به خروجی اضافه و شمارش حروف را افزایش دهید، اگر iswdigit بود آن را اضافه و شمارش ارقام را افزایش دهید، در غیر این صورت آن را حذف بشمارید. نکته‌ها: از std::getline(std::wcin, ...) برای خواندن کامل خط استفاده کنید و تعداد حذف‌شده را می‌توانید به‌صورت طول اولیه منهای طول خروجی محاسبه کنید.

توسط پژوهشگر در 220 روز قبل ساعت 02:15
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 220 روز قبل ساعت 10:21

برای کار با کاراکترهای یونی‌کد، ابتدا locale مناسبی را تنظیم کنید تا توابع iswalpha و iswdigit دقیق عمل کنند. برای کارایی بهتر خروجی را با reserve آماده کنید و هر wchar_t را با towlower به حروف کوچک تبدیل و به خروجی اضافه کنید. فقط حروف و اعداد نگهداری می‌شوند و بقیه کاراکترها حذف خواهند شد؛ تعداد حذف‌شده‌ها را می‌توانید از طول ورودی منهای طول خروجی محاسبه کنید. همچنین از std::getline(std::wcin, ...) استفاده کنید تا خط کامل ورودی خوانده شود.

گزارش

1 پاسخ

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

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