עבור לתוכן

שאלה בשפת C | פונקציה המחזירה מערך של תווים

Featured Replies

פורסם

שאלה למי שמבין

אם יצרתי פונקציה המחזירה מערך של תויים אז אני רושם בצורה כזאתי (ללא הצהרה מפורשת על גודל המערך):

char[] newShring(char[] a)

{

int i;

char temp,newA[];

temp = a[o];

for (i=1;i<strlen(a);i++)

{

if (temp == a)

{

newA[k] = temp;

k++;

}

temp = a;

}

return newA[k+1];

}

ואם אני רוצה לפנות לפונקציה מהתוכנית הראשית אני פשוט מצהיר על מערך חדש מאותו סוג ללא הצהרה על גודל המערך ואז:

void main()

{

int i;

char[k+1] mainString;

char[] mainA = {"aaffbc"};

mainString = newShring(mainA);

gets(mainString);

}

mainString זה המערך החדש

char[] newShring(char[] a) newString זה הפונקציה mainA זה המערך ששלחתי לו

פורסם

ערוך את ההודעה ושים את הקוד בתוך תג קוד, כדי שיהיה קריא יותר.

לשאלתך: אי אפשר להחזיר מערך מתוך פונקציה. פונקציה יכולה להחזיר מצביע (מערך ומצביע הם למעשה אותו דבר). בשביל לעשות משהו שכן דומה להחזרת מערך מתוך פונקציה, יש שתי אופציות: או שהפונקציה מקבלת מערך פלט ואז ממלאת אותו, או שהפונקציה מקצה מערך באופן דינמי (באמצעות malloc) ומחזירה מצביע אליו.

פורסם

המלצה קטנה: תשתמש בקישור הבא כמדריך לשפת C:

http://orianit.edu-negev.gov.il/rogozinkg/sites/homepage/mkuna/regFiles/Cource%20C.pdf

ספר מעולה בן 352 עמודים, אם אני לא טועה.

התוכן בספר ממש איכותי.

תיכנס גם לאתר interlect.co.il > תיכון ובגרויות > מחשבים > שפת C - ישם שם קורס מקוון וחינמי, ממש מומלץ.

פורסם
  • מחבר

ערוך את ההודעה ושים את הקוד בתוך תג קוד, כדי שיהיה קריא יותר.

לשאלתך: אי אפשר להחזיר מערך מתוך פונקציה. פונקציה יכולה להחזיר מצביע (מערך ומצביע הם למעשה אותו דבר). בשביל לעשות משהו שכן דומה להחזרת מערך מתוך פונקציה, יש שתי אופציות: או שהפונקציה מקבלת מערך פלט ואז ממלאת אותו, או שהפונקציה מקצה מערך באופן דינמי (באמצעות malloc) ומחזירה מצביע אליו.

הבנתי אותך אחי, תודה

  • 2 שבועות מאוחר יותר...
פורסם

שלום,

ישנם שני דרכים להחזיר מערך מפונקציה:

1. החזרת מצביע כמו שנכתב קודם לכן.

2. החזרת עותק של המערך וזאת ע"י כך שמחזירים מבנה (struct) שבתוכו מוגדר המערך. שים לב שבמקרה זה גודל המערך חייב להיות ידוע מראש.

בנוסף הייתי ממליץ על הספר

"The ANSI C Programming Language" book by Brian W. and Dennis M.

אשר האוניברסיטה הפתוחה משתמשת בו.

ישנו אתר של שאלות ותשובות עיוניות לחזרה על החומר הנילמד בשפת סי:

http://www.quizmeup.com/categories/programming-language/c-language/quiz

ארכיון

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

דיונים חדשים