برنامهای به زبان C++ بنویسید که یک رشتهٔ حاوی عبارت ریاضی یا کد ورودی را گرفته، همهٔ توکنهای متوالی شامل حروف الفبا (شناسهها) را استخراج کرده و تعداد کل و فهرست شناسههای یکتا را نمایش دهد.
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:42 0.0
برای حل این مسئله از کتابخانهٔ و تابع std::isalpha برای تشخیص حرف استفاده کنید: روی رشته پیمایش کنید و وقتی کاراکتر الفبایی دیدید آن را به یک توکن موقت اضافه کنید؛ به محض برخورد به کاراکتر غیرالفبایی توکن را تمام و در یک مجموعه (std::set) قرار دهید تا یکتاها حفظ شوند و شمارش انجام شود. فناوریها و ابزارهای موردنیاز: C++ استاندارد، , , , . نکتهها: در پایان رشته فراموش نکنید توکن باقیمانده را ثبت کنید و برای سادگی فرض کنید شناسهها تنها شامل حروف هستند (برای پشتیبانی از _ یا ارقام میتوانید شرایط اضافی اضافه کنید).
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی این است که هنگام استفاده از std::isalpha باید کاراکترها را به unsigned char تبدیل کنید تا رفتار استاندارد حفظ شود و #include <cctype> را فراموش نکنید. همچنین بهتر است انتهای رشته را با افزودن یک کاراکتر غیرالفبایی یا پس از حلقه آخر، توکن باقیمانده را ثبت کنید تا فرایند یکپارچه باشد. اگر میخواهید شناسهها فقط حروف باشند، همین شرط ساده کافی است؛ برای پشتیبانی از _ یا اعداد میتوانید شرط تشخیص توکن را گسترش دهید تا هر کاراکتر پذیرفتهشده در شناسه را بگیرد. نهایتاً استفاده از std::set<std::string> برای شناسههای یکتا مناسب است و شمارش کل توکنهای یافتشده به راحتی قابل استخراج است.
گزارش