כיצד להשתמש בפונקציית substr () ב- C ++

How Use Substr Function C

הדרך לחתוך כל חלק מחוט נקראת מחרוזת משנה. הפונקציה substr () קיימת ב- C ++ ליצירת מחרוזת חדשה על ידי חיתוך חלק מסוים ממחרוזת. ה string.h קובץ הספרייה נדרש לכלול כדי להשתמש בפונקציה זו. לפונקציה זו שני טענות. הארגומנט הראשון מכיל את מיקום ההתחלה של המחרוזת החדשה, והארגומנט השני מכיל את אורך המחרוזת. אופן השימוש בפונקציית substr () ב- C ++ הוסבר במדריך זה.

תְנַאִי מוּקדָם

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



תחביר

משנה מחרוזת (size_t pos = 0, size_t len ​​= npos) const;



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



דוגמה 1: שימוש פשוט ב- substr ()

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

// כלול ספריות נחוצות
#לִכלוֹל
#לִכלוֹל


intרָאשִׁי() {
// הגדר משתנה מחרוזת
שעה (ות::חוּטoriginalstr='ברוכים הבאים ל- Linuxhint';
// גזרו את מחרוזת המשנה באמצעות substr ()
שעה (ות::חוּטnewstr=originalstr.substr (אחת עשרה,9);
// הדפס את המחרוזת המקורית
שעה (ות::עֲלוּת <<'המחרוזת המקורית היא:' <<originalstr<< ' n';
// הדפס את מחרוזת המשנה
שעה (ות::עֲלוּת <<'מחרוזת המשנה היא:' <<newstr<< ' n';

לַחֲזוֹר 0;
}

תְפוּקָה:

על פי הקוד, המחרוזת המקורית היא ' ברוכים הבאים ל- LinuxHint '. 11 נתן כמיקום ההתחלה של מחרוזת המשנה שהיא המיקום של תו ה- L, ו- 9 נתנו כערך האורך של מחרוזת המשנה. ' LinuxHint 'חזר כפלט של הפונקציה substr () לאחר ביצוע הקוד.



דוגמה 2: שימוש ב- substr () בהתבסס על המיקום של מחרוזת ספציפית

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

// כלול ספריות נחוצות
#לִכלוֹל
#לִכלוֹל
באמצעות מרחב שמותשעה (ות;

intרָאשִׁי()
{
שעה (ות::חוּטstrData= 'אני אוהב תכנות C ++';

// בואו למצוא את המיקום של '-' באמצעות str.find ()
intעמדה=strData.למצוא('תִכנוּת');

// נקבל את מחרוזת המשנה עד לתבנית זו
שעה (ות::חוּטnewstr=strData.substr(0, עמדה);

שעה (ות::עֲלוּת <<strData<< ' n';
שעה (ות::עֲלוּת <<newstr<< ' n';

לַחֲזוֹר 0;
}

תְפוּקָה:

על פי הקוד, ערך המחרוזת העיקרי הוא, אני אוהב תכנות C ++ והערך של מחרוזת החיפוש הוא, ' תִכנוּת' שקיים במחרוזת הראשית. אז הפלט הוא ' אני אוהב C ++ 'לאחר ביצוע הקוד.

דוגמה 3: שימוש ב- substr () עם טיפול חריג

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

// כלול ספריות נחוצות
#לִכלוֹל
#לִכלוֹל

intרָאשִׁי() {
לְנַסוֹת{

// הגדר משתנה מחרוזת
שעה (ות::חוּטoriginalstr='Linuxhint';
// גזרו את מחרוזת המשנה באמצעות substr ()
שעה (ות::חוּטnewstr=originalstr.substr (אחת עשרה,9);
// הדפס את מחרוזת המשנה
שעה (ות::עֲלוּת <<'מחרוזת המשנה היא:' <<newstr<< ' n';
}
לתפוס (קבועשעה (ות::מחוץ לטווח) {
שעה (ות::cerr << ״העמדה נמצאת מחוץ לטווח. n';
}
לַחֲזוֹר 0;
}

תְפוּקָה:

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

דוגמה 4: שימוש ב- substr () לפיצול המחרוזת

הדוגמה הבאה מציגה את השימוש בפונקציית substr () לפיצול מחרוזת המבוססת על מפריד. הפונקציה find () שימשה לחיפוש מיקום המפריד, והפונקציה מחק () שימשה להסרת המחרוזת המפוצלת עם המפריד מהמחרוזת הראשית. לולאת ה- 'while' שימשה לאתר את כל המיקומים של המפריד במחרוזת הראשית ולאחסן את הערך המפוצל במערך הווקטורי. לאחר מכן, הערכים של מערך הווקטורים הודפסו.

// כלול ספריות נחוצות
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל

intרָאשִׁי(){
// הגדר את המחרוזת
שעה (ות::חוּטstringData= 'PHP: C ++: Python:';
// הגדר את המפריד
שעה (ות::חוּטמפריד= ':';
// הכריז על המשתנה הווקטורי
שעה (ות::וֶקטוֹרשפות{};
// הכריז על משתנה שלם
intעמדה;
// הכריז על משתנה מחרוזת
שעה (ות::חוּטoutstr;
/ *
פיצול המחרוזת באמצעות פונקציית substr ()
והוספת המילה המפוצלת לווקטור
* /

בזמן ((עמדה=stringData.למצוא(מפריד)) !=שעה (ות::חוּט::npos) {
שפות.התנגדות(stringData.substr(0, עמדה));
stringData.לִמְחוֹק(0, עמדה+מפריד.אורך());
}
// הדפס את כל המילים המפוצלות
ל (קבוע אוטומטי &outstr:שפות) {
שעה (ות::עֲלוּת <<outstr<<שעה (ות::endl;
}
לַחֲזוֹר 0;
}

תְפוּקָה:

על פי הקוד, ערך המחרוזת העיקרי הוא PHP: C ++: פייתון וערכו של המפריד הוא ' : ' . הפלט הבא יופיע לאחר ביצוע התסריט לעיל.

סיכום

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