תוֹכֶן
השוואת אורך מחרוזות היא פונקציה נפוצה בשפת התכנות C, מכיוון שהיא מאפשרת לגלות איזו מחרוזת מכילה יותר תווים. זה מאוד שימושי למיון נתונים. השוואת מחרוזות דורשת פונקציה מיוחדת; אז אל תשתמש: != אוֹ ==.
לדרוך
- ישנן שתי פונקציות המאפשרות להשוות מחרוזות ב- C. שניהם כלולים ב string.h>ספריית קוד.
- strcmp () - פונקציה זו משווה בין שני מחרוזות ומחזירה את ההפרש במספר התווים.
- strncmp () - זה חל גם על strcmp (), אלא שזו הראשונה נ משווה תווים. זה נחשב מאובטח יותר מכיוון שהוא מסייע במניעת קריסות הצפה.
- הפעל את התוכנית עם הספריות הדרושות. יש לך שתי ספריות stdio.h> ו string.h> נדרש, יחד עם ספריות אחרות שתצטרך לתוכנית שלך.
#include stdio.h> [[תמונה: השווה שני מיתרים בתכנות C שלב 1 גרסה 4.webp | center]] #include string.h>
- התחל אחד.intפוּנקצִיָה. זו הדרך הקלה ביותר ללמוד פונקציה זו מכיוון שהיא מחזירה מספר שלם המשווה את אורך שני המיתרים.
[[תמונה: השווה שני מיתרים בתכנות C שלב 2 גרסה 4.webp | מרכז]] # כלול stdio.h> [[תמונה: השווה שני מיתרים בתכנות C שלב 3 גרסה 3.webp | מרכז]] #include מחרוזת. h> int main () {}
- החליטו אילו שני מחרוזות אתם רוצים להשוות. בדוגמה זו אנו משווים שני נתונים לְהַשְׁחִיר מיתרים. עליך גם לקבוע את ערך ההחזר כמספר שלם.
[[תמונה: השווה שני מיתרים בתכנות C שלב 4 גרסה 4.webp | center]] #include stdio.h> [[תמונה: השווה שני מיתרים בתכנות C שלב 5 גרסה 4.webp | center]] #include מחרוזת. h> int main () {char * str1 = "apple"; char * str2 = "כתום"; int ret;}
- הוסף את פונקציית ההשוואה. כעת, לאחר שהגדרת שני מחרוזות, תוכל להוסיף את פונקציית ההשוואה. אנחנו הולכים strncmp () לכן עלינו לוודא שמספר התווים למדוד מוגדר בתוך הפונקציה.
[[תמונה: השווה שני מיתרים בתכנות C שלב 6 גרסה 4.webp | center]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "כתום"; int ret; ret = strncmp (str1, str2, 11); / * משווה את שני המחרוזות באורך של עד 11 תווים * /}
- להשתמש.אחרתכדי לבצע את ההשוואה. עכשיו כשיצרנו את הפונקציה, השתמש אחרת כדי לקבוע איזו מחרוזת ארוכה יותר. strncmp () נותן 0 כתוצאה מכך, אם המיתרים באותו אורך, מספר חיובי אם str1 ארוך יותר ומספר שלילי אם str2 ארוך יותר.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "כתום"; int ret; ret = strncmp (str1, str2, 11); אם (ret> 0) {printf ("str1 ארוך יותר"); } אחרת אם (ret 0) {printf ("str2 ארוך יותר"); } אחר {printf ("שני המיתרים זהים"); } להחזיר (0); }
אזהרות
- זכור שערך ההחזר הוא 0 אם המיתרים שווים. זה יכול לבלבל מכיוון ש- 0 הוא גם הערך של FALSE.