פורסם 2010 ביוני 2215 שנים שלום.אני צריך לבנות פונק' רקורסיבית. המקבלת את המחרוזת הראשית, ושתי מחרוזות נוספות "ריקות", ומפרידה את האותיות והספרות לשתי מחרוזות, האחת של אותיות והשנייה של ספרות. הנה מה שכתבתי אך זה לא עובד בכלל ואני לא מוצא את הבעייה..תודה לעוזרים.#include<stdio.h>#include<conio.h>#include<string.h>void F_String(char *st,char *st1,char *st2){if(*st=='\0'){*st1='\0';*st2='\0';return;}else if(*st>='A'&&*st<='Z'||*st>='a'&&*st<='z'){ *st1=*st; st++;}else{ *st2=*st; st2++;}F_String(st,st1,st2);}int main(){char st[101]={0},st1[101]={0},st2[101]={0}; printf("Enter string: ");gets(st);F_String(st,st1,st2);puts(st1);getch();return 0;}
פורסם 2010 ביוני 2215 שנים קודם כל, תערוך בבקשה את ההודעה ותדאג להזחה נכונה של הקוד. קשה מאוד להבין מה קורה שם כרגע.חוץ מזה, השורה הראשונה (אחרי ה-while) היא return, אז איך אתה מצפה שהקוד יעבוד?
פורסם 2010 ביוני 2215 שנים מחבר קודם כל, תערוך בבקשה את ההודעה ותדאג להזחה נכונה של הקוד. קשה מאוד להבין מה קורה שם כרגע.חוץ מזה, השורה הראשונה (אחרי ה-while) היא return, אז איך אתה מצפה שהקוד יעבוד?ערוך והתוכנית השתנתה
פורסם 2010 ביוני 2215 שנים קודם כל בגלל שזה רקורסיה שעוברת על המחרוזת,אתה צריך לקדם את המצביע שלך בקריאה הרקורסיביתF_String(st+1,st1,st2);במקרה ונמצא אות, אתה צריך לקדם את המצביע למחרוזות של האותיות במקום המצביע למחרוזת הכללית.טיפ קטן, עדיף שתתן שמות עם משמעות למשתנים שלך, ככה יהיה לך קל יותר לראות את הטעויות שלך.
פורסם 2010 ביוני 2315 שנים מחבר קודם כל בגלל שזה רקורסיה שעוברת על המחרוזת,אתה צריך לקדם את המצביע שלך בקריאה הרקורסיביתF_String(st+1,st1,st2);במקרה ונמצא אות, אתה צריך לקדם את המצביע למחרוזות של האותיות במקום המצביע למחרוזת הכללית.טיפ קטן, עדיף שתתן שמות עם משמעות למשתנים שלך, ככה יהיה לך קל יותר לראות את הטעויות שלך.תודה. עזרת לי. מצאתי את השגיאה.ובכל זאת אוסיף את הקוד לכל המעוניין:#include<stdio.h>#include<conio.h>#include<string.h>void F_String(char *st,char *st1,char *st2){if(*st=='\0'){ *st1='\0';*st2='\0';return;}else if(*st>='A'&&*st<='Z'||*st>='a'&&*st<='z'){ *st1=st[0]; st1++;}else{ *st2=st[0]; st2++;}F_String(st+1,st1,st2);}int main(){char st[101]={0},st1[101]={0},st2[101]={0}; printf("Enter string: ");gets(st);F_String(st,st1,st2);puts(st1);puts(st2);getch();return 0;}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.