ฟังก์ชัน 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