pain_killer12 פורסם 2009 ביוני 4 Share פורסם 2009 ביוני 4 חברים, האם יש פונקציה ב++C שמקבלת מחרוזת ומפרקת אותה למילים לפי סימן כלשהו?יש לי קלט שאני אמור לקבל מהצורה הבאה:<Type> <name> <num> ...וכך הלאה. כל מילה מופרדת ע"י רווח ו < >.כל מילה מחזיקה מידע שאני צריך לדעת בשביל לאתחל את האובייקטים שלי - פולימורפיזם.לכן, קודם אני צריך לפרק את המחרוזת ולדעת את כל האינפורמציה ורק אח"כ ליצור דינאמית את האובייקטולשלוח את כל המידע לCTOR.השאלה שלי איך אני יכול לעשות את זה? האם יש פונקציה ב++C שנגיד מחזירה מטריצה שכל שורה בההיא מילה אחרת למשל? או כל סוג של פעולה אחרת? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2009 ביוני 5 Share פורסם 2009 ביוני 5 קודם כל, מה שאתה מחפש נקרא Tokenizer.אין פונקציה מובנית שעושה בדיוק מה שאתה רוצה בשפה. קיימת פונקציה שם strtok שתעשה לך חלק מהעבודה.http://www.cppreference.com/wiki/c/string/strtokשים לב שזו פונקציה שעובדת על מחרוזות של C, ושהיא משנה לך את המחרוזת.אופציה שנייה היא לממש את זה ידנית לחלוטין, באמצעות חיפוש של הרווחים והפרדה לתתי מחרוזות. יש כל מיני דוגמאות ברשת, כמו כאן:http://www.oopweb.com/CPP/Documents/CPPHOWTO/Volume/C++Programming-HOWTO-7.htmlחיפוש של C++ Tokenizer בגוגל ימצא לך עוד הרבה דוגמאות קוד או חבילות. קישור לתוכן שתף באתרים אחרים More sharing options...
Zelig פורסם 2009 ביוני 5 Share פורסם 2009 ביוני 5 הנה משהו שחפרתי באינטרנט ונראה לי סביר.int main(){ std::string token, text("Here:is:some:text"); std::istringstream iss(text); while ( getline(iss, token, ':') ) { std::cout << token << std::endl; } return 0;} קישור לתוכן שתף באתרים אחרים More sharing options...
pain_killer12 פורסם 2009 ביוני 6 מחבר Share פורסם 2009 ביוני 6 תודה רבה חברים. כנראה שאממש את זה ידנית. אסור להתעסק עם string, רק עם char *. תודה רבה על העזרה קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2009 ביוני 6 Share פורסם 2009 ביוני 6 אם רק עם char* אז בשביל זה יש strtok. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.