כתיבת קוד — שיעור 34
Strings ב-C
כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T2 · בסיסי200 נק'~15 דק'build
העתקת מחרוזת בטוחה ב-C
ממש safe_copy(dst, src, size) שמעתיק לכל היותר size-1 תווים ותמיד מסיים ב-'\0' (בניגוד ל-strcpy המסוכן). בתוכנית: קראו מילה, העתיקו בבטחה ל-buf בגודל 8, והדפיסו את התוצאה. קלט ארוך ייחתך בבטחה.
דוגמאות
SuperSecret → SuperSe (7 תווים, buf=8)
abc → abc
הפתרון נשמר מקומית אוטומטית.
T3 · בינוני350 נק'~20 דק'algorithmic
סורק פונקציות C מסוכנות
ממש find_unsafe(lines) המחזיר (מספר_שורה, שם_פונקציה) לכל שימוש בפונקציית C מסוכנת: gets, strcpy, strcat, sprintf. זהה קריאת-פונקציה ממש (שם ואז '(') — אל תסמן זהות חלקית כמו my_gets_wrapper. מספור מ-1.
דוגמאות
find_unsafe(['gets(buf);']) → [(1, 'gets')]
find_unsafe(['x=1','strcpy(a,b);']) → [(2, 'strcpy')]
הפתרון נשמר מקומית אוטומטית.