logo

תוכנית C להשוואה בין שתי המחרוזות

ניתן להשוות מחרוזות על ידי שימוש בפונקציית מחרוזת או בלי שימוש בפונקציית מחרוזת. ראשית, נבחן כיצד אנו יכולים להשוות את המחרוזות בעזרת פונקציית מחרוזת, כלומר, strcmp(), המוגדר בא מחרוזת.ח קובץ הכותרת.

השוואת מחרוזות באמצעות פונקציית מחרוזת

פונקציית המחרוזת המוגדרת מראש ב-a מחרוזת.ח קובץ הכותרת הוא א strcmp() פוּנקצִיָה. הפונקציה strcmp() מחשיבה שתי מחרוזות כפרמטר, ופונקציה זו מחזירה ערך שלם שבו הערך השלם יכול להיות אֶפֶס , חִיוּבִי אוֹ שלילי .

התחביר של הפונקציה strcmp() ניתן להלן:

 int strcmp (const char* str1, const char* str2); 

בתחביר לעיל, שני פרמטרים מועברים כמחרוזות, כלומר, str1 ו str2 , וסוג ההחזרה הוא int פירושו שה-strcmp() מחזיר ערך שלם.

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

ערכי החזר אפשריים מהפונקציה strcmp()

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

בואו נבין דרך דוגמה.

 #include #include int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array int value; // declaration of integer variable printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); // comparing both the strings using strcmp() function value=strcmp(str1,str2); if(value==0) printf(&apos;strings are same&apos;); else printf(&apos;strings are not same&apos;); return 0; } 

ניתוח התוכנית לעיל

  • הכרזנו על שני מערכים מסוג char, כלומר, str1 ו-str2. אנו לוקחים את קלט המשתמש כמחרוזות.
  • אנו משווים את המחרוזות באמצעות ה- strcmp() פונקציה, כלומר, strcmp(str1,str2). פונקציה זו תשווה את שתי המחרוזות str1 ו-str2. אם הפונקציה מחזירה ערך 0 פירושו ששתי המחרוזות זהות, אחרת המחרוזות אינן שוות.

תְפוּקָה:

תוכנית C להשוואה בין שתי המחרוזות
תוכנית C להשוואה בין שתי המחרוזות

השוואת מחרוזות ללא שימוש בפונקציה strcmp().

 #include int compare(char[],char[]); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); int c= compare(str1,str2); // calling compare() function if(c==0) printf(&apos;strings are same&apos;); else printf(&apos;strings are not same&apos;); return 0; } // Comparing both the strings. int compare(char a[],char b[]) { int flag=0,i=0; // integer variables declaration while(a[i]!=&apos;&apos; &amp;&amp;b[i]!=&apos;&apos;) // while loop { if(a[i]!=b[i]) { flag=1; break; } i++; } if(flag==0) return 0; else return 1; } 

ניתוח התוכנית לעיל

  • לעיל, הכרזנו על שני מערכים מסוג char, ואנחנו לוקחים את קלט המשתמש כמחרוזות.
  • הגדרנו פונקציה compare() שתיקח מחרוזות קלט משתמש כפרמטר, ותשווה את שתי המחרוזות. אם הפונקציה מחזירה 0, כלומר שתי המחרוזות שוות אחרת שתי המחרוזות אינן שוות .

תְפוּקָה:

תוכנית C להשוואה בין שתי המחרוזות

השוואת מחרוזות באמצעות מצביעים

 #include int stringcompare(char*,char*); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;
Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); int compare=stringcompare(str1,str2); // calling stringcompare() function. if(compare==0) printf(&apos;strings are equal&apos;); else printf(&apos;strings are not equal&apos;); return 0; } // Comparing both the strings using pointers int stringcompare(char *a,char *b) { int flag=0; while(*a!=&apos;&apos; &amp;&amp; *b!=&apos;&apos;) // while loop { if(*a!=*b) { flag=1; } a++; b++; } if(flag==0) return 0; else return 1; } 

ניתוח התוכנית לעיל

  • יצרנו שני מערכים של char מסוג str1 ו-str2. אנו לוקחים את קלט המשתמש כמחרוזות.
  • הגדרנו פונקציה stringcompare() שתיקח שני מצביעים מסוג char כפרמטר. מצביע 'a' מחזיק את הכתובת של str1 ומצביע 'b' מחזיק את הכתובת של str2. בתוך הפונקציה, יצרנו לולאת while אשר תתבצע עד שהמצביע a או b לא יגיעו לתו null.

תְפוּקָה:

תוכנית C להשוואה בין שתי המחרוזות