מחרוזות בC

  • פותח הנושא LeB
  • פורסם בתאריך

LeB

New member
מחרוזות בC

איך אני משתמש בפונקציות בSTRING.H בפונצקיות STRCHR STRSTR הרי זה מחזיר מצביע, אבל המערך הוא הרי מ0 עד N- אז אחרי שהפונקציה החזיקה מצביע איך אני יודע איפה זה במערך (מ1 עד N) ואם אני רוצה לגשת לאיבר העוקב אחרי האיבר שמצאנו בSTRSTR איך אני עושה את זה?
 

DadleFish

New member
המלצה שלי,

תקרא ב-MSDN (או במקור אחר) על הפונקציות האלו מתחילתן ועד סופן, ואח"כ תשאל את השאלות אם יהיו לך. הבעיה שיש לי עם ההודעה שלך היא שהשאלות שלך מאוד לא ברורות. בגדול אני יכול לומר לך שמחרוזת היא מערך רציף בזכרון. אם המחרוזת התחילה בכתובת 1001, למשל, ו-strstr החזירה לך 1020, אז תת המחרוזת שאותרה במחרוזת המקורית מתחילה בתו ה-20. התו ה-21 יהיה ב-1021 וכו'. אם זה לא עונה לך על השאלות, אני ממליץ בחום לקרוא קצת יותר על הפונקציות האלו ובכלל על מחרוזות.
 

LeB

New member
למען השם למה זה צריך להיות מסובך כל

כך
סך הכל אני מנסה להשלים את 2 היחידות הראשונות במחשבים.. זה לא אמור להיות מסובך כל כך. למשל יש לי שאלה: " כתובת תכנית המקבלת 2 מחרוזות ומחזיר את מספר המופעים של החרוזת הקצרה יותר במחרוזת הארוכה יותר." מה שאני תכננתי זה לעשות STRSTR, אם הוא מוצא מיקום- אז הקאונטר++ ואז יש לי מצביע לכתובת. אני רוצה להזיז את המצביע אחד קדימה ואז להעביר את כל התאים במערך למערך חדש זמני ואז שוב לעשות STRSTR, שוב להזיז מצביע קדימה ולהעתיק עד שהמערך ריק. איך אני יכול לממש את זה בC?
 

hope2drive

New member
אין צורך להעתיק למערך זמני

הרעיון שלך נכון, רק שאין צורך בהעתקה. שים מצביע על תחילת המערך שלך. strstr מחזיר לך מיקום. תקדם את המצביע שלך למיקום הזה + 1. תבצע שוב strstr על המצביע שלך.
 

LeB

New member
אוקיי אז אני אשנה את השאלה שלי

פשוט לא נגעתי חודשים בסי
איך אני מקדם את המצביע לאיבר הבא? בC?
 

zagzagzag

New member
++ptr

מצביע הוא בסך הכל כתובת בזיכרון, ואפשר לבצע עליו פעולות אריתמטיות. בגלל שבמקרה שלך מדובר במערך/מחרוזת (וכל האיברים נמצאים בגוש אחד בזיכרון) אתה יכול להוסיף 1 למצביע כדי להגיע לאיבר הבא.
 

hatulflezet

New member
תשובה שאלה

התשובה לשאלה שלך היא - מה ההבדל בין מערך CHAR למחרוזת? תמצא את התשובה לשאלה הזו (בגוגל למשל) ויש לך תשובה לשאלה שלך. זה כל כך בסיסי שלטובתך אני שולח אותך לחפש. תקיש string c tutorial בגוגל.
 
למעלה