פונקציה ב C++

  • פותח הנושא lmalo
  • פורסם בתאריך

lmalo

New member
פונקציה ב C++

התבקשתי לכתוב פונקציה ב שמכניסה מחרוזת אחת לשניה בנקודת חיתוך מסויימת ואני עושה את הקוד הבא אבל יש בו בעיה מסויימת כי זה מדפיס הכל טוב חוץ מהתו האחרון שהוא קישקוש ואחריו יש עוד מלא זבל.. במה טעיתי? מישהו יכול לעזור ? arr=50 array=20
void Input(char arr[],char array[],int num) { int i,length1,length2; length1=strlen(arr); length2=strlen(array); for (i=num;i<length1;i++) { arr[num+length2+1]=arr[num]; } for(i=0;i<length2;i++) { { arr[num]=array; num=num+1; } }
 

selalerer

New member
בלי להסתכל על הקוד:

תשים '0\' בסוף (NULL TERMINATOR או פשוט 0).
arr[num]=0;​
 

frangelico

New member
ועוד משהו

שים לב שבלולאה הראשונה אתה מכניס לאותו מקום אותו איבר צריך לקדם את שניהם ובנוסף מה שאמרו לפני בערך כך:
void Input(char arr[],char array[],int num) { int i, k, length1,length2; length1=strlen(arr); length2=strlen(array); for (k = 0,i=num;i<length1;i++, k++) { arr[num+length2+k]=arr; } for(i=0;i<length2;i++) { { arr[num]=array; num=num+1; } } arr[length1 + length2] = '\0'; }

כמו כן שים לב שהמחרוזת שמשתנה צריכה להיות מוגדרת בגודל שתוכל להכיל את שניהם. ובמקרה שלך גם צריך לשים לב שלמשל אם num = 2 אז הוא כמובן בתו השלישי.
 

lmalo

New member
לא עזר...

גם ניסיתי לשים את זה בכל מיני מקומות וזה לא עזר..
 
למעלה