یک برنامه به زبان C بنویسید که با استفاده از تابع gets از کاربر یک خط فرمان ساده دریافت کند و سپس نام فرمان و هر آرگومان را جدا کرده و هر کدام را در یک خط جداگانه چاپ کند.

5.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:18

0.0

برای حل این مسئله فایل هدر stdio.h (و همچنین string.h برای توابع رشته‌ای مانند strtok) را اضافه کنید، یک بافر بزرگ برای ذخیره ورودی تعریف کنید، با gets رشته ورودی را دریافت کرده و سپس با strtok بر پایه فاصله یا تب رشته را به توکن‌ها تقسیم و هر توکن را در خطی جدا چاپ کنید. توجه داشته باشید که gets ناامن است و ممکن است باعث سرریز بافر شود؛ در عمل از fgets استفاده کنید و همیشه اندازه بافر و مقادیر بازگشتی توابع را بررسی کنید، همچنین هنگام استفاده از strtok از مقدار NULL برای پایان تقسیم‌بندی و مدیریت ورودی خالی استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:18
دسته بندی ها: C for beginner
nima در 221 روز قبل ساعت 13:46

نکته مهم این است که تابع gets امن نیست و ممکن است بافر را پر کند، پس از fgets استفاده کنید و اندازه بافر را بررسی کنید. برای جدا کردن توکن‌ها از strtok استفاده کنید و با بررسی مقدار بازگشتی و وجود NULL، ورودی خالی یا پایان تقسیم را مدیریت کنید. همچنین رشته ورودی را پیش از چاپ از کاراکتر '\n' موجود در انتهای خط جدا کنید تا خطوط خالی چاپ نشوند. اگر به امنیت بیشتر نیاز دارید، می‌توانید از strtok_r (در برخی سیستم‌ها) یا توابع ایمن‌تر استفاده کنید و خروجی هر توکن را در یک خط چاپ کنید.

گزارش

1 پاسخ

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

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