For faster navigation, this Iframe is preloading the Wikiwand page for מחרוזת (מדעי המחשב).

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

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

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

בשפות תכנות

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

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

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

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

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

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

פעולות על מחרוזות

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

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

ראו גם


קישורים חיצוניים

ויקישיתוף מדיה וקבצים בנושא מחרוזת בוויקישיתוף
{{bottomLinkPreText}} {{bottomLinkText}}
מחרוזת (מדעי המחשב)
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.