یک برنامه به زبان C++ بنویسید که یک رشته شامل شناسهها و عملگرها را از ورودی دریافت کند و با استفاده از std::toupper از هدر تمام حروف الفبایی داخل رشته را به حروف بزرگ تبدیل و رشتهٔ تبدیلشده را چاپ کند.
12.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:49 0.0
برای حل این مسئله یک std::string بخوانید و با یک حلقه روی کاراکترها بروید؛ برای تبدیل هر کاراکتر حروفی از std::toupper(static_cast(ch)) استفاده کنید تا از مشکلات مقادیر منفی کاراکتر جلوگیری شود. این تکنیک در مفسرها/کامپایلرها برای نرمالسازی شناسهها یا در پردازش متون علمی برای یکدستسازی نام متغیرها مفید است؛ فقط توجه داشته باشید که std::toupper بهصورت پیشفرض برای کاراکترهای ASCII مناسب است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مفید: هنگام استفاده از std::toupper مقدار کاراکتر را با static_cast<unsigned char>(c) به تبدیل بدهید تا از رفتار نامشخص کاراکترهای منفی پرهیز شود. std::toupper بهطور پیشفرض با localeٔ C کار میکند و برای کاراکترهای غیر ASCII ممکن است نتیجه متفاوت بدهد؛ اگر ورودی شما فقط ASCII است، این روش کافی است. برای خواندن رشته از ورودی از std::getline استفاده کنید تا فضاهای داخلی رشته هم ثبت شوند و سپس با یک حلقه یا std::transform حروف را به بزرگ تبدیل کنید. این تکنیک برای نرمالسازی شناسهها در پردازش کد یا متن مفید است.
گزارش