שאלה דחופה ב- c++

טוב

New member
שאלה דחופה ב- c++

אשמח אם תעזרו לי. אני צריכה לעבור על איזה מערך של char* ולפי הפרמטרים שלו לקרוא לפונקציות. אין לי מושג איך ה loop צריך להראות. אני אסביר בדוגמא: יש לי : char *buf. שנראה ככה : n tov good nice,a two four five,g go be no עכשיו, אני צריכה לעבור על הבאפר, ואם אני רואה n אני קוראת לפונקציה עם כל מה שאחריו עד לפסיק (כלומר שולחת לפונקציה באפר עם tov good nice אם רואה a שולחת לפונקציה אחרת עם two four five אותו דבר עם g התעזרו לי? (מקווה שהסברתי את עצמי).
 

DarkArcher

New member
הנה..

אוקיי... אני לא כלכך בטוח מה הכוונה בדיוק אבל נגיד שיש לך דבר כזה
char *buffer; char sec[50]={0}; . . . //the loop could look like this... for(i=0;i<strlen(buffer);i++)//or replace strlen with numerical length { switch(buffer) { case ´n´: // i found an ´n´ // start filling the second buffer... for(int j=i;j<strlen(buffer)&&buffer[j]!=´,´;j++) sec[j]=buffer[j] myfunc(sec); break; . . . // continue the rest same way...

note: this is just a simple suggestion, any question, just ask.. i hope i´ve been helpful.. peace!
 

ihovav

New member
הנה עוד שיטה :

יש ב C פונקציה שנקראת STRTOK הפונקציה מקבלת פוינטר ל CHAR ורשימת תווים: היא רצה על המערך ובכל פעם שהיא מוצאת אחד מהתווים שהוזנו כפרמטר - היא "חותכת" את המערך (שמה NULL) ומחזירה את המחרוזת החדשה, כאשר הפוינטר שהוזן מצביע על התו הבא אחרי הNULL תשתמשי בפונקציה הזו ב 2 צורות : אחת כדי למצוא את הפונקציה המבוקשת (תזיני רווח כתו מפריד) והשניה כדי למצוא את הפרמטרים (תשתמשי בתו פסיק כמפריד) ככה תוכלי לחסוך את העבודה בלולאות מסובכות, רק תצטרכי לולאה כללית לפתור מקרים כמו זה שהצגת - שיש יותר מקריאה אחת באותה השורה נ.ב : זו פונקציה מאוד "מסוכנת" מבחינת זליגות זיכרון והפלת התכנית - לכן אני ממליץ שתקראי עליה בMSDN או במקור תיעוד אחר
 
למעלה