שרשור תו למחרוזת...

שרשור תו למחרוזת...

איך אני משרשר תו למחרוזת??? חשוב לציין שהמחרוזת מיוצגת באמצעות מערך ולא *char... strcat משרשר מחרוזת למחרוזת ולא תו..
 

shaiis7

New member
אם זה בקשר לקלט

אז אתה יכול לשלוח מערך של char למשל char temp[5] (הערך של המחרוזת משתנה כך שלא צריך מצביעים) ואז אתה יכול להשתמש ב STRCAT אבל אם אתה רוצה לשרשר למערך אתה מוסיך בסוף או איפה שאתה רוצה את התו ושם אחריו NULL, אבל זה בעייה כדאי לך לעשות מחרוזת (שזה מערך של char)
 
בלי הרבה סיבוכים:../images/Emo26.gif

אם n זה אורך המחרוזת המקורית ו-c התו החדש אז:
אם n+1 שווה לגודל המערך (או גדול ממנו) - שגיאה (אין מקום להוסיף עוד תו)
אחרת תעשה: str[n]=c ו-str[n+1]=NULL כש-str זה המערך שלך.
 

gmorphus

New member
אבל....

חשוב לשים לב שאם המחרוזת היא מערך אז צריך להקפיד לא לחרוג מגבולותיו האמיתיים. זאת אחת הסיבות שאם אתה רוצה משתנה שיהיה מחרוזת מסוימת עדיף להשתמש במצביע שמוקצה דינאמית ולא במערך (אלא אם יש לך גודל מקסימלי לא גדול מידי ואז אתה יכול להקצות את כל המערך מראש) ד"א, אין הבדל כמעט בין מערך למצביע *char מבחינת השימוש במשתנה עצמו. כלומר [str[7 יהיה התו השמיני במחרוזת בין אם אתה עובד עם מערך ובין אם אתה עובד עם *char ולכן כמעט בכל המקרים אתה יכול להחליף מערך סטטי במערך שמוקצה דינאמית בלי הרבה שינויים.
 
אבל למה אבל?...../images/Emo26.gif

הבדיקה הראשונה שעשיתי הייתה לוודא שאתה "לא חורג מגבולותיו האמיתיים"...
 
למעלה