בעייה עם תרגיל ב-C

בעייה עם תרגיל ב-C

יש לי בעייה בתרגיל בספר "ללמוד C", אני לא מצליח למצוא פיתרון יעיל לשאלה: 10. כתוב פונקציה שמקבלת שתי מחרוזות ומדפיסה את הארוכה ביותר. מצורף הקוד (הלא מוצלח שלי), תודה מראש!
 

micmuk

New member
תשובה קצת מטומטמת

האמת אני לא ממש יעזור לך אבל באופן כללי גוף הפונקציה שלך עובד מצויין הבעיה היא בקריאה לפונקציה אני די עייפה - ולא הצלחתי לעלות על הבעיה (גם לא חיפשתי יותר מדי...) בכל אופן אני מצרפת את הקובץ כאשר הפונקציה עצמה נימצאת ב-main וזה עובד אחלה... תחפש ת´בעיה בהגדרה של הפונקציה או בשליחה של הפרמטרים מיק
 

ke

New member
מחרוזות

יש כמה בעיות עם מה שכתבת. ראשית הפונקציה צריכה להחזיר char * או מערך ולא תו בודד. בנוסף, אתה מחזיר זכרון שהוקצה בתוך הפונקציה וזאת טעות. יש כמה דרכים ע"מ לא להסתבך עם הזכרון. אפשרות אחת היא שהפונקציה בעצמה תדפיס, אפשרות שניה היא לשלוח שלוש מחרוזות, כאשר הארוכה תועתק לשלישית. שתי הפונקציות מצורפות בקובץ.
 

kreka

New member
תשובה לשאלתך.

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

yuvalzr

New member
אני ישתדל לא לסבך אותך יותר מידי

ככה מה שעשית כעיקרון זה שלכת את התו האחרון של המחרוזת answer מה שאומר שבמחרוזת lstr יש רק תו אחד, אתה יודע מה אפילו זה לא כעיקרון שאתה מגדיר מחרוזת בעלת 80 תווים מספר התווים הוא מ - 0 עד 79 ככה שמה ששלכת זה זבל, אני אישית הייתי ממליץ לך להשתמש במצבעים או באמת מה שאמרו לך כאן זה להדפיס את התשובה בתוך הפונקציה. אני לא בתוך יש ליקצת בלאק אאוט כרגע אבל לפני זה תנסה לשלוח את כל המחרוזת חזרה אני פשוט לא זוכר עם אפשר או לו (כל המחרוזת זה אומר פשוט בלי הסוגריים המרובעים). יובל
 
למעלה