Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa strncmp () và strcmp () trong C / C ++

strncmp ()

Hàm strncmp () được sử dụng để so sánh chuỗi bên trái với chuỗi bên phải cho đến một số. Nó hoạt động giống như strcmp (). Nó trả về giá trị lớn hơn 0 khi ký tự phù hợp của chuỗi bên trái có giá trị ASCII lớn hơn ký tự của chuỗi bên phải. Trả về giá trị nhỏ hơn 0 khi ký tự phù hợp của chuỗi bên trái có giá trị ASCII nhỏ hơn ký tự của chuỗi bên phải.

Đây là cú pháp của strncmp () trong ngôn ngữ C,

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

Đây,

  • Chuỗi bên trái - Chuỗi đầu tiên được so sánh với chuỗi bên phải.

  • rightString - Chuỗi thứ hai được sử dụng để so sánh chuỗi đầu tiên.

  • số - Số ký tự tối đa để so sánh.

Đây là một ví dụ về strncmp () trong ngôn ngữ C,

Ví dụ

#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;
}

Đầu ra

Đây là kết quả đầu ra

Strings are unequal
Value returned by strcmp() is: 26

strcmp ()

Hàm strcmp () là một hàm thư viện tích hợp sẵn và được khai báo trong tệp tiêu đề “string.h”. Hàm này được sử dụng để so sánh các đối số chuỗi. Nó so sánh các chuỗi về mặt từ vựng, có nghĩa là nó so sánh cả ký tự của các chuỗi theo từng ký tự. Nó bắt đầu so sánh ký tự đầu tiên của các chuỗi cho đến khi các ký tự của cả hai chuỗi đều bằng nhau hoặc ký tự NULL được tìm thấy.

Nếu ký tự đầu tiên của cả hai chuỗi bằng nhau, nó sẽ kiểm tra ký tự thứ hai, v.v. Quá trình này sẽ được tiếp tục cho đến khi tìm thấy ký tự NULL hoặc cả hai ký tự đều không bằng nhau. Nó trả về 0 nếu cả hai chuỗi giống hệt nhau, tức là các ký tự giống nhau trong cả hai chuỗi.

Nó trả về giá trị lớn hơn 0 khi ký tự phù hợp của chuỗi bên trái có giá trị ASCII lớn hơn ký tự của chuỗi bên phải. Nó trả về giá trị nhỏ hơn 0 khi ký tự phù hợp của chuỗi bên trái có giá trị ASCII nhỏ hơn ký tự của chuỗi bên phải.

Đây là cú pháp của strcmp () trong ngôn ngữ C,

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

Đây,

  • Chuỗi bên trái - Chuỗi đầu tiên được so sánh với chuỗi bên phải.

  • rightString - Chuỗi thứ hai được sử dụng để so sánh chuỗi đầu tiên.

Đây là một ví dụ về strcmp () trong ngôn ngữ C,

Ví dụ

#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;
}

Đầu ra

Đây là kết quả:

Strings are unequal
Value returned by strcmp() is: 32