یک برنامهٔ C بنویسید که نام فایل کد منبع C را از آرگومان خط فرمان بگیرد، محتوای فایل را بخواند و با استفاده از تابع strstr از string.h بررسی کند آیا تابع main (به‌عنوان "int main" یا "main(") و کلمه‌کلیدی return در فایل وجود دارند یا نه و نتیجه را چاپ کند.

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

0.0

فایل را با fopen باز کنید، اندازهٔ آن را با fseek/ftell بدست آورید، با malloc با یک بایت اضافی حافظه برای '\0' اختصاص دهید و با fread کل محتوا را بخوانید و خاتمهٔ رشته را قرار دهید. برای جستجو از تابع strstr از هدر string.h استفاده کنید (مثلاً دنبال "int main" یا "main(" و "return" بگردید)، حضور یا عدم حضور هر الگو را گزارش دهید؛ خطاها مثل بازنشدن فایل یا پیام مناسبی چاپ کنید و در پایان حافظه را آزاد و فایل را ببندید.

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

طرح شما خوب است، اما strstr فقط جستجوی کاراکتری را انجام می‌دهد و ممکن است وجود 'int main' یا 'return' را در کامنت‌ها یا رشته‌ها هم بیابد؛ بنابراین نتیجهٔ جستجو باید با در نظر گرفتن زمینهٔ کد اعتبارسنجی شود. برای پائین نگه داشتن خطاها، حتماً خطای fopen را گزارش دهید و پس از پایان کار منابع را آزاد کنید. همچنین تخصیص حافظه باید با اندازهٔ فایل به‌درستی انجام شود و پایان رشته با '\0' کاراکتری مناسب باشد تا استفاده از strstr بی‌مشکل باشد. نهایتاً توصیه می‌کنم به شکلی کارا نتایج را به کاربر گزارش کنید، مثلاً وجود یا عدم وجود هر الگو را صریحاً چاپ کنید.

گزارش

1 پاسخ

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

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