כיצד להשוות שני מחרוזות בשפת התכנות C

מְחַבֵּר: William Ramirez
תאריך הבריאה: 18 סֶפּטֶמבֶּר 2021
תאריך עדכון: 1 יולי 2024
Anonim
תרגול 1 - תכנות בשפת C
וִידֵאוֹ: תרגול 1 - תכנות בשפת C

תוֹכֶן

זה די נפוץ בקוד C להשוות אורכי מחרוזות כדי לברר איזו מחרוזת מכילה יותר תווים. זה שימושי למיון נתונים. יש צורך בפונקציה מיוחדת להשוואת מחרוזות - אין להשתמש != אוֹ ==.

צעדים

  1. 1 שפת התכנות C כוללת שתי פונקציות בהן תוכלו להשוות אורכי מחרוזות. שתי הפונקציות הללו כלולות בספרייה string.h>.
    • strcmp () - פונקציה זו משווה בין שתי מחרוזות ומחזירה את ההפרש במספר התווים.
    • strncmp () - פונקציה זו זהה ל strcmp () חוץ מזה הראשון נ תווים. הוא נחשב מאובטח יותר מכיוון שהוא נמנע מכשלים של הצפה.
  2. 2 הפעל את התוכנית עם הספריות הנדרשות. תזדקק לספריות stdio.h> ו string.h>כמו גם כל ספריות אחרות הנדרשות לתוכנית הספציפית שלך.

    #include stdio.h> #include string.h>

  3. 3 הזן פונקציה int. הוא מחזיר מספר שלם כתוצאה מהשוואת אורך של שתי מחרוזות.

    #include stdio.h> #include string.h> int main () {}

  4. 4 זהה את שני המחרוזות שברצונך להשוות. בדוגמה שלנו, בואו להשוות שתי מחרוזות מסוג לְהַשְׁחִיר... הגדר גם את ערך ההחזרה כמספר שלם.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "כתום"; int ret; }

  5. 5 הזן פונקציית השוואה. בדוגמה שלנו נשתמש בפונקציה strncmp ()... אתה צריך להגדיר את מספר התווים הנמדדים.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "כתום"; int ret; ret = strncmp (str1, str2, 8); / * משווה בין שתי מחרוזות באורך של עד 8 תווים * /}

  6. 6 הזן הצהרה מותנית אם... אחרת. יש צורך להראות איזו שורה ארוכה יותר. פוּנקצִיָה strncmp () יחזיר את המספר 0אם אורכי המחרוזות זהים, מספר חיובי אם str1 ארוך יותר ומספר שלילי אם str2 ארוך יותר.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "כתום"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 ארוך יותר"); } אחר אם (ret 0) {printf ("str2 ארוך יותר"); } else {printf ("אורכי הקווים שווים"); } החזרה (0); }

אזהרות

  • זכור שאם אורכי המחרוזות שווים, הערך 0. יוחזר. הדבר עלול לבלבל מכיוון ש- 0 הוא גם FALSE.