ฟังก์ชัน strcmp() เป็นฟังก์ชันไลบรารีในตัวและประกาศไว้ในไฟล์ส่วนหัว "string.h" ฟังก์ชันนี้ใช้เพื่อเปรียบเทียบอาร์กิวเมนต์สตริง มันเปรียบเทียบสตริง lexicographically ซึ่งหมายความว่าจะเปรียบเทียบทั้งสตริงอักขระด้วยอักขระ จะเริ่มเปรียบเทียบอักขระตัวแรกของสตริงจนกว่าอักขระของสตริงทั้งสองจะเท่ากันหรือพบอักขระ NULL
ถ้าอักขระตัวแรกของทั้งสองสตริงเท่ากัน จะตรวจสอบอักขระตัวที่สองเป็นต้น กระบวนการนี้จะดำเนินต่อไปจนกว่าจะพบอักขระ NULL หรืออักขระทั้งสองไม่เท่ากัน
นี่คือไวยากรณ์ของ strcmp() ในภาษา C
int strcmp(const char *leftStr, const char *rightStr );
ฟังก์ชันนี้จะคืนค่าที่ต่างกันสามค่าต่อไปนี้ตามการเปรียบเทียบ
1.Zero(0) - คืนค่าศูนย์หากทั้งสองสตริงเหมือนกัน อักขระทั้งหมดเหมือนกันในทั้งสองสตริง
นี่คือตัวอย่างของ strcmp() เมื่อสตริงทั้งสองมีค่าเท่ากันในภาษา C
ตัวอย่าง
#include<stdio.h> #include<string.h> int main() { char str1[] = "Tom!"; char str2[] = "Tom!"; int result = strcmp(str1, str2); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
ผลลัพธ์
Strings are equal Value returned by strcmp() is: 0
2.มากกว่าศูนย์(>0) − ส่งคืนค่าที่มากกว่าศูนย์เมื่ออักขระที่ตรงกันของสตริงด้านซ้ายมีค่า ASCII มากกว่าอักขระของสตริงด้านขวา
นี่คือตัวอย่างของ strcmp() เมื่อคืนค่ามากกว่าศูนย์ในภาษา C
ตัวอย่าง
#include<stdio.h> #include<string.h> int main() { char str1[] = "hello World!"; char str2[] = "Hello World!"; int result = strcmp(str1, str2); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
ผลลัพธ์
Strings are unequal Value returned by strcmp() is: 32
3.น้อยกว่าศูนย์(<0) − ส่งคืนค่าที่น้อยกว่าศูนย์เมื่ออักขระที่ตรงกันของสตริงด้านซ้ายมีค่า ASCII น้อยกว่าอักขระของสตริงด้านขวา
นี่คือตัวอย่าง strcmp() ในภาษา C
ตัวอย่าง
#include<stdio.h> #include<string.h> int main() { char leftStr[] = "Hello World!"; char rightStr[] = "hello World!"; int result = strcmp(leftStr, rightStr); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
ผลลัพธ์
Strings are unequal Value returned by strcmp() is: -32