یک برنامه C بنویسید که یک رشته حاوی کد منبع به سبک C را گرفته و تعداد شناسه‌ها (identifiers) موجود در آن را با استفاده از توابع موجود در شمارش کند.

4.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:47

0.0

برای حل، رشته را بایستی با یک حلقه پیمایش کنید؛ هرگاه کاراکتری که با isalpha() یا '_' شروع می‌شود یافت شد، تا زمانی که کاراکترهای بعدی با isalnum() یا '_' باشند ادامه دهید و آن توالی را به عنوان یک شناسه شمارش کنید. می‌توانید از اندیس عددی روی آرایهٔ کاراکترها استفاده کنید و پس از شناسایی یک شناسه اندیس را به انتهای آن منتقل کنید؛ لازم نیست که تشخیص کلمات کلیدی انجام شود یا مدیریت موارد پیچیده‌ای مثل رشته‌ها و کامنت‌ها در این سوال ابتدایی الزامی باشد.

توسط پژوهشگر در 220 روز قبل ساعت 01:47
دسته بندی ها: C for beginner
nima در 220 روز قبل ساعت 12:00

برای استفاده از isalpha و isalnum باید فایل <ctype.h> را include کنید و کاراکترها را به unsigned char تبدیل نمایید تا از رفتار نامعمول با کاراکترهای منفی جلوگیری شود. این رویکرد به‌سادگی می‌تواند رشته‌ها یا کامنت‌ها را نیز به‌عنوان شناسه بشمارد، پس اگر فقط شناسه‌های کد مدنظر است، بهتر است فیلترهای ساده‌ای برای رشته‌ها و کامنت‌ها اضافه شود. همچنین آغاز هر شناسه باید با حرف یا '_' باشد و تا جایی ادامه پیدا کند که کاراکترهای بعدی از نوع alnum یا '_' باشند. اگر می‌خواهید از شمارش کلیدواژه‌ها نیز صرف‌نظر کنید، می‌توانید لیستی از کلیدواژه‌های زبان C اضافه کرده و با شناسایی شناسه‌ها وجود کلیدواژه را فیلتر کنید.

گزارش

1 پاسخ

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

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