Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

strcmp() ใน C/C++


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