עבור לתוכן

עזרה במימוש פונקציה בשפת C

Featured Replies

פורסם

היי חברים.

יש לי תרגיל להגשה לממש פונקציה בשפת C שעושה את הדבר הבא:

כתבו פונקציה בעלת המפרט (prototype) הבא:

void eraseDuplicates(char* str, char c);

הפונקציה מקבלת מצביע למחרוזת ותו c. אם התו c מופיע במחרוזת כמה פעמים ברצף , הפונקציה מוחקת את כל המופעים הרצופים הכפולים ומשאירה מופע בודד של התו c .

לדוג' : מחיקת a מהמחרוזת abcaaabcaabad תחזיר את המחרוזת abcabcabad

בסעיף זה אין להשתמש באופרטור [] על מנת לגשת לתווים במחרוזת.

איך בדיוק מי שכתב את התרגיל, מצפה שאני אעשה את זה בלי להשתמש באופרטור [] על מנת לגשת לתווים במחרוזת?!

בנוסף אם למישהו יש רעיון/דרך לממש את הפונקציה הזו אני אודה לו מאוד! :)

פורסם

תיגש לתווים באמצעות המצביע.

תיצור מערך עזר, תעבור על המערך המקורי באמצעות מצביע. תעתיק למערך עזר רק את מה שבאמת צריך להיות שם.

ולסיכום תעתיק את המחרוזת שנוצרה במערך עזר (אחרי הוספת null בסיומה) למערך המקורי.

פורסם
  • מחבר

רעיון מעולה!

אאמץ את זה. אבל השאלה היא איך אני עובד עם המצביעים בלי האופרטור []?

פורסם
str[10]
//מקביל ל
*(str+10)

str[i]
//מקביל ל
*(str+i)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים