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

ความแตกต่างระหว่าง strncmp() และ strcmp() ใน C/C++


strncmp()

ฟังก์ชัน strncmp() ใช้เพื่อเปรียบเทียบสตริงซ้ายกับสตริงขวาจนถึงตัวเลข มันทำงานเหมือนกับ strcmp() ส่งคืนค่าที่มากกว่าศูนย์เมื่ออักขระที่ตรงกันของสตริงด้านซ้ายมีค่า ASCII มากกว่าอักขระของสตริงด้านขวา ส่งคืนค่าที่น้อยกว่าศูนย์เมื่ออักขระที่ตรงกันของสตริงด้านซ้ายมีค่า ASCII น้อยกว่าอักขระของสตริงด้านขวา

นี่คือไวยากรณ์ของ strncmp() ในภาษา C

int strncmp ( const char *leftString, const char *rightString, size_t number );

ที่นี่

  • leftString − สตริงแรกที่จะเปรียบเทียบกับสตริงที่ถูกต้อง

  • rightString − สตริงที่สองที่ใช้เปรียบเทียบสตริงแรก

  • หมายเลข − จำนวนอักขระสูงสุดที่จะเปรียบเทียบ

นี่คือตัวอย่าง strncmp() ในภาษา C

ตัวอย่าง

#include<stdio.h>
#include<string.h>

int main() {
   char str1[] = "blank";
   char str2[] = "Hello World!";
   int result = strncmp(str1, str2, 1);

   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: 26

strcmp()

ฟังก์ชัน strcmp() เป็นฟังก์ชันไลบรารีในตัวและประกาศในไฟล์ส่วนหัว "string.h" ฟังก์ชันนี้ใช้เพื่อเปรียบเทียบอาร์กิวเมนต์สตริง มันเปรียบเทียบสตริง lexicographically ซึ่งหมายความว่าจะเปรียบเทียบทั้งสตริงอักขระด้วยอักขระ จะเริ่มเปรียบเทียบอักขระตัวแรกของสตริงจนกว่าอักขระของสตริงทั้งสองจะเท่ากันหรือพบอักขระ NULL

ถ้าอักขระตัวแรกของทั้งสองสตริงเท่ากัน จะตรวจสอบอักขระตัวที่สองเป็นต้น กระบวนการนี้จะดำเนินต่อไปจนกว่าจะพบอักขระ NULL หรืออักขระทั้งสองไม่เท่ากัน คืนค่าศูนย์หากสตริงทั้งสองเหมือนกัน นั่นคือ อักขระเหมือนกันในทั้งสองสตริง

ส่งคืนค่าที่มากกว่าศูนย์เมื่ออักขระที่ตรงกันของสตริงด้านซ้ายมีค่า ASCII มากกว่าอักขระของสตริงด้านขวา ส่งคืนค่าที่น้อยกว่าศูนย์เมื่ออักขระที่ตรงกันของสตริงด้านซ้ายมีค่า ASCII น้อยกว่าอักขระของสตริงด้านขวา

นี่คือไวยากรณ์ของ strcmp() ในภาษา C

int strcmp(const char *leftString, const char *rightString );

ที่นี่

  • leftString − สตริงแรกที่จะเปรียบเทียบกับสตริงที่ถูกต้อง

  • rightString − สตริงที่สองที่ใช้เปรียบเทียบสตริงแรก

นี่คือตัวอย่าง 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