כל מה שאתה צריך לדעת על מיתרים ב- C ++



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

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

מעמד מחרוזת והבדל בין מערכי הדמויות

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

הצהיר ופתח את המיתרים ב- C ++

strings-in-c++אתחול המחרוזת ב- C ++ הוא די פשוט !. אנו יכולים להשתמש בכל אחת מהשיטות הבאות.





באמצעות מחרוזת std מחרוזת std_string

אוֹ

std :: מחרוזת std_string
# כלול שימוש במרחב השמות std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Hello by st' std :: string std_st = 'Hello by std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

תְפוּקָה:



שלום על ידי שלום שלום על ידי שלום שלום על ידי std_st

בדוגמה זו, הראנו הן את מערך התווים (ch) והן את cl המחרוזתשיטות אתחול תחת (st ו- std_st). ראשית, השתמשנו בשיטת מערך התווים על ידי הגדרת מערך תווים ch [12] המכיל 12 אלמנטים ומסתיים בתו null. בחלק השני השתמשנו בשיטת מחלקות מיתרים.

פעולות על מיתרים ב- C ++

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

גודל מחרוזת: ניתן להשתמש בשיטות גודל () וגם אורך () להחזרת גודל האובייקט.



עֲלוּת<< st.length() <

תְפוּקָה:

מהי שגיאת מפתח
11 11

שרשור מחרוזת: אנו יכולים לשרשר שני מחרוזות או יותר פשוט על ידי שימוש באופרטור + ביניהן

מחרוזת new_string = st + 'ו-' + std_st cout<< new_string <

תְפוּקָה:

שלום על ידי רחוב ושל שלום על ידי std_st

מחרוזות מצרפות: ניתן להשתמש בפונקציה .append (מחרוזת) בכיתה כדי לשרשר ולצרף מחרוזת במיקום תו ספציפי במחרוזת. אם מתכנת מכניס str.append (str1, p, n), פירוש הדבר שמספר n של תווים ממיקום p במחרוזת str1 יוצמד לסוף str.

מחרוזת str = 'אני נהנה ללמוד' מחרוזת str1 = 'Python, C ++, או C' str. append (str1, 8, 3) cout<< str << endl

תְפוּקָה:

אני נהנה ללמוד C ++

חיפוש מחרוזות: אנו יכולים להשתמש בפונקציית החבר find () כדי למצוא את המופע הראשון של מחרוזת בתוך אחרת. find () יחפש מחט מיתרים בתוך ערמת חציר מחרוזת החל ממצב pos ויחזיר את המיקום של המופע הראשון של המחט. הפונקציה rfind () פועלת באופן דומה, אלא שהיא מחזירה את המופע האחרון של המחרוזת שעברה.

ג'אווה פורצת מהשיטה
מחרוזת חציר = 'שלום עולם!' מחט מיתרים = 'o' cout<< haystack.find(needle)<

תְפוּקָה:

4 4 7 4294967295

פקודת ה- Cout הראשונה תדפיס בפשטות את '4' שהוא אינדקס ההתרחשות הראשונה של 'o' במחרוזת החציר. אם אנו רוצים את ה'או 'ב'עולם', עלינו לשנות את ה'פוז 'כדי להצביע על פני ההתרחשות הראשונה. haystack.find (מחט, 4) שוב יחזיר 4, ואילו haystack.find (מחט, 5) ייתן 7. אם המצע לא נמצא, מצא () מחזיר std :: string :: npos.

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

קוד פשוט זה מחפש מחרוזת לכל המופעים של 'C ++' ב- str2 ומדפיס את מיקומם:

מחרוזת str2 = 'C ++ היא שפת תכנות מונחית עצמים וכוללת מחלקות, ירושה, פולימורפיזם, הפשטת נתונים וקפסולציה. C ++ מאפשר טיפול בחריגים, ועומס יתר על פונקציות שאינם אפשריים ב- C. C ++ היא שפה חזקה, יעילה ומהירה. ' עבור (מחרוזת :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = מחרוזת :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

תְפוּקָה:

התרחשות של 'C ++' במיקום נמצא 0 התרחשות של 'C ++' במיקום 132 נמצא הופעה של 'C ++' במיקום 217
# כלול שימוש ב- namespace std class base {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // כריכה מאוחרת (RTP) ptr-> fun_3 () // כריכה מאוחרת (RTP) ptr-> fun_4 () // כריכה מוקדמת אך קריאת פונקציה זו היא // לא חוקית (מייצרת שגיאה) מכיוון שהמצביע // הוא מסוג הבסיס והפונקציה הוא מ // נגזר מחלקה // p-> fun_4 (5)}

תְפוּקָה:

פונקציית מחלקת בסיס 1 פונקציית מחלקה נגזרת 2 פונקציית מחלקת בסיס 3 פונקציית מחלקת בסיס 4

עם זה, אנו מגיעים לסוף מאמר זה על מיתרים ב- C ++. אני מקווה שהבנת את הפעולות השונות שניתן לבצע בה. אם ברצונך ללמוד עוד, עיין ב- Java Training של Edureka, חברת למידה מקוונת אמינה. אדוריקה קורס הכשרה והסמכה נועד להכשיר אותך למושגי ליבה וג'אווה מתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה ונחזור אליך בהקדם האפשרי.