یک برنامهٔ C++ بنویسید که یک رشتهٔ C-style را از ورودی بگیرد، فاصلههای ابتدا و انتها را حذف کند، سپس با استفاده از std::strlen طول نهایی را چاپ کند و بهصورت ساده بررسی کند که آیا رشته تنها شامل ارقام و حداکثر یک نقطهٔ اعشاری است (اعتبارسنجی پایهٔ عدد اعشاری).
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:46 0.0
برای حل این مسأله از آرایهٔ کاراکتری null-terminated و توابع C++ مانند std::strlen (در ) و isdigit (در ) استفاده کنید. ابتدا با حذف فاصلههای پیش و پس (با جابجایی ایندکس ابتدا و انتها) رشتهٔ نهایی را تعیین کنید، سپس طول آن را با std::strlen بهدست آورده و چاپ کنید؛ برای اعتبارسنجی عدد اعشاری، هر کاراکتر را پیمایش کنید و شمارش نقطهها را محدود به یک کنید و اطمینان بیابید بقیه کاراکترها رقم هستند. نکات: از بررسی رشتهٔ خالی جلوگیری کنید، و هنگام کار با C-string به خاتمهٔ '\0' توجه داشته باشید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ مهم این است که هنگام حذف فاصلههای ابتدایی و انتهایی با جابجایی اندیسها رشته را امن و با بررسی وجود '\0' مدیریت کنید و از خالی بودن آن غافل نشوید. همچنین هنگام استفاده از isdigit بهتر است کاراکتر را به unsigned char تبدیل کنید تا رفتاری سازگار با همهٔ پلتفرمها تضمین شود. برای اعتبارسنجی عدد اعشاری تنها یک نقطه مجاز است و سایر کاراکترها باید رقم باشند؛ طول نهایی را با std::strlen محاسبه و چاپ کنید. در نهایت مراقب باشید پس از جابهجاییها رشته بهدرستی خاتمه یابد تا از دست رفتن '\0' جلوگیری شود.
گزارش