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

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


shahar91

Recommended Posts

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

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...