השאלה-
עליכם לכתוב תוכנית בשם substring.c המקבלת שתי מחרוזות מהמשתמש ומדפיסה את תוצאת הפונקציה
int strsub ( char *str1, char *str2 )כלומר: התוכנית תדפיס האם str2 הינה תת מחרוזת של str1 או לא.
צריך להשתמש ברקורסיה ללא פונקצית מעטפת !
בהינתן שני מערכים המכילים מחרוזות s1 ו- s2, נאמר ש s2 הינו תת מחרוזת של s1 אם:
קיים תא במערך s1 המכיל את האות הראשונה של s2
וקיים תא במערך s1 לאחר התא הקודם המכיל את האות השנייה של s2
וקיים תא במערך s1 לאחר התא הקודם המכיל את האות השלישית של s2
וקיים תא במערך s1 לאחר התא הקודם המכיל את האות האחרונה של s2
לדוגמא-
המחרוזת
kculdoog
הינה תת מחרוזת של המחרוזת
q#kk$<cuaalad3odog1
הנה מה שעשיתי-
int StrSub (char *str1, char *str2)
{
int flag = TRUE;
if (*str2 == '\0')
return TRUE;
for (; str1 != '\0' && flag == TRUE; str1++){
if (*str1 == *str2){
flag = FALSE;
return StrSub (str1+1, str2+1);
}
}
return FALSE;
}
נראה לי הבעיה היא שאני מחזיר ערך אז הוא מחזיר לפקונציה שקראה לו ולמיין זה לא מגיע אף פעם כמו שצריך...
מה עושים :|?