ההבדל בין מערך אופי למיתר

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 1 אַפּרִיל 2021
תאריך עדכון: 6 מאי 2024
Anonim
Difference between Character and String | A few flash of String and Character |
וִידֵאוֹ: Difference between Character and String | A few flash of String and Character |

תוֹכֶן


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

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

בסיס להשוואהמערך הדמויותמחרוזת
בסיסימערך התווים הוא אוסף של משתנים, מסוג נתוני תווים.מחרוזת היא מחלקה ומשתנים של מחרוזת הם מושא הכיתה "מחרוזת".
תחבירarray_name;שם מחרוזת מחרוזת;
אינדקסניתן לגשת לתו בודד במערך תווים באמצעות האינדקס שלו במערך.במחרוזת ניתן לגשת לתו המסוים באמצעות הפונקציה "string_name.charAt (index)".
סוג מידעמערך תווים אינו מגדיר סוג נתונים.מחרוזת מגדירה תאריך נתונים ב- C ++.
מפעיליםלא ניתן להחיל מפעילים ב- C ++ על מערך תווים.אתה יכול להחיל מפעיל C ++ רגיל על המחרוזת.
גבולגבולות מערך מוצפים בקלות.גבולות לא יבוטלו.
גישהגישה מהירה.גישה איטית.


הגדרת מערך הדמויות


מערך תווים הוא אוסף של המשתנים של סוג "char". זה יכול להיות מערך חד מימדי או מערך דו מימדי. זה נקרא גם "מחרוזת עם סיום null". מערך תווים הוא רצף של הדמויות המאוחסנות בכתובות זיכרון עוקבות. במערך תווים ניתן לגשת לתו מסוים באמצעות האינדקס שלו. "תו אפס" מסיים את מערך התווים ".

ניקח דוגמא למערך הדמויות: -

char char = = A, J, A, Y, 0}; או שם char = "Ajay";

כאן, "char" הוא סוג נתוני תווים, "שם" הוא שם משתנה של מערך התווים. הראיתי שתי דרכים לאתחל את מערך הדמות. בשיטה הראשונה האולף מוזכר במפורש ובשיטה השנייה המהדר מכניס אוטומטית את ה- null.

סוף המחרוזת הוא תמיד תו null; זה הדמות המסיימת של מערך הדמויות. מערך תווים אינו סוג נתונים מובנה; אנו יוצרים מערך אופי על ידי הכרזתו. אינך יכול להחיל מפעילים רגילים על מערך תווים. כדי לפעול על מערך תווים יש כמה פונקציות מובנות כמו, (strlen (), strlwr (), strupr (), strcat ()). מכיוון שלא ניתן להחיל את המפעילים הסטנדרטיים על מערך תווים, הם לא יכולים לקחת חלק בשום ביטוי.


ניתן ליצור גם את מצביע התווים למערך תווים.

בואו נבין זאת עם דוגמא.

char s1 = "שלום"; char s2 = "אדוני"; s1 = s1 + s2; // לא ניתן להחיל מפעילי שגיאה s2 = s1; // error Character pointer char * s = "בוקר"; char * p; p = s; // מבצעת

בדוגמה לעיל הכרזנו על מערך תווים s1, s2 ושתי מצביעי תווים s ו- p. מערך התווים s1 ו- s2 מאתחלים, אנו יכולים לראות כי לא מפעיל התוספת (+) ולא מפעיל ההקצאה עובדים על מערך התווים. אך ניתן להקצות מצביע תווים למצביע אחר.

זכור ברגע שמערך התווים מאתחל, לא ניתן לאתחל אותו שוב לסט תווים אחר. הגישה למערך תווים או מחרוזת עם סיום null מהירה בהשוואה למחרוזת ב- C ++.

הגדרת מיתר

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

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

הבה נבין מיתרים עם דוגמא.

מחרוזת s1; s1 = "שלום"; מחרוזת s2 ("בוקר טוב"); string s3 = "Hennery"; מחרוזת s4;

בהצהרה לעיל מוצהרים ארבעה משתנים או אובייקטים של מחרוזת (s1, s2, s3, s4). בהצהרה שלעיל הראיתי שלוש דרכים לאתחל את המחרוזת. מחרוזת s1 מוצהרת ואז מאתחל בנפרד. המיתר s2 מאתחל על ידי הקבלן של הכיתה "מחרוזת". המיתר s3 מאתחל בזמן ההכרזה שלו כפי שעושים סוג נתונים רגיל. אנו יכולים להחיל את המפעיל הסטנדרטי על משתני המחרוזת.

s4 = s1; // הקצאת אובייקט מחרוזת אחד ל s4 = s1 + s2; // הוספת שני מחרוזות ואחסון התוצאה במחרוזת שלישית אם (s3> s2) // השוואה בין שני מיתרי המיתרים s5 (s1); יצירת אובייקט מחרוזת חדש באמצעות אובייקט מחרוזת קיים

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

הגישה למחרוזת איטית בהשוואה למערך תווים או מחרוזת עם סיום בטל.

ההבדלים העיקריים בין מערך הדמויות למחרוזת

  1. מערך תווים הוא אוסף של משתנים בעלי סוג תאריך. מחרוזת היא כיתה המיועדת להכריז על מיתרים.
  2. באמצעות ערך אינדקס אתה יכול לגשת לתו ממערך תווים. מצד שני, אם ברצונך לגשת לתו מסוים במחרוזת, אתה יכול לגשת אליו באמצעות הפונקציה string__name.charAt (אינדקס).
  3. מכיוון שמערך אינו סוג של תאריך דומה, אופי שהוא גם אינו סוג של נתונים. מצד שני, מחרוזת בהיותה מעשה כיתתי כסוג התייחסות ומכאן, ניתן לומר שהמחרוזת היא סוג נתונים.
  4. אינך יכול להחיל אף מפעיל על מערך תווים ואילו אתה יכול להחיל מפעילים במחרוזת.
  5. להיות מערך תווים של מערך הוא בעל אורך קבוע וניתן יהיה לעבור בקלות על גבולותיו. שם למיתר אין גבולות.
  6. רכיבי מערך מאוחסנים במיקום זיכרון רציף ומכאן שאפשר לגשת אליו מהר יותר מאשר משתנה מחרוזת.

סיכום:

חוסר יכולת לפעול על מערך תווים העלה את התפתחות מחלקת המיתרים הסטנדרטית.