מחרוזת (מדעי המחשב)

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Incomplete-document-purple.svg יש להשלים ערך זה: ערך זה עשוי להיראות מלא ומפורט, אך עדיין חסר בו תוכן מהותי. ייתכן שתמצאו פירוט בדף השיחה.
הנכם מוזמנים להשלים את החלקים החסרים ולהסיר הודעה זו. שקלו ליצור כותרות לפרקים הדורשים השלמה, ולהעביר את התבנית אליהם.

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

בשפות תכנות[עריכת קוד מקור | עריכה]

בשפות תכנות אימפרטיביות המחרוזת מאוחסנת כמערך של תווים. בשפות פונקציונליות (כגון LISP או Haskell) מחרוזות מאוחסנות כרשימה.

יש מספר צורות מקובלות להתייחסות למחרוזת:

  • ישנן שפות המתייחסות למחרוזת כאל מערך רגיל (למשל C) אבל בגלל שימושיותה הרבה של המחרוזת נכתבו לה פונקציות ספריה מיוחדות.
  • ישנן שפות בהן המערך מטופל כטיפוס מיוחד בשפה (בדומה למספר), למשל ב־BASIC.

בשפות בהן צורת האחסון היא תמיד כמערך, הצורה המדויקת משתנה בהתאם לשפה:

  • בחלק מהשפות (כמו C, אסמבלר), האחסון הוא בצורה של מערך שבסופו יש תו מציין.
  • בשפות מסוימות (למשל Pascal) המערך מאוחסן עם הגודל שלו בתחילת המערך.
  • בשפות אחרות (למשל ADA) אין כלל טיפול בגודל המערך על ידי השפה ועל המתכנת לדאוג לשמור את גודל המערך.
  • ישנן שפות (למשל ב־Visual Basic) בהם נוקטים הן את שיטת התו המציין ואת שיטת שמירת הגודל.

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

פעולות אופייניות על מחרוזות הן:

  • שרשור: איחוד שתי מחרוזות למחרוזת אחת.
  • יצירת תת-מחרוזת ממקום מסוים ובאורך מסוים ממחרוזת נתונה. דוגמה: מתת-המחרוזת הנמצאת החל מהמקום החמישי באורך 2 של המחרוזת 'שלום רב שובך' היא 'רב'.
  • איתור תת-מחרוזת נתונה במחרוזת נתונה. דוגמה: חיפוש המחרוזת 'רב' במחרוזת 'שלום רב שובך' ייתן את התוצאה 5 (או 4 במחרוזת שהתו הראשון בה נמצא במקום ה-0).

ראו גם[עריכת קוד מקור | עריכה]