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

strcmp () trong C / C ++

Hàm strcmp () là một hàm thư viện tích hợp sẵn và nó đượ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.

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

int strcmp(const char *leftStr, const char *rightStr );

Hàm này trả về ba giá trị khác nhau sau đây dựa trên so sánh.

1.Zero (0) - Nó trả về 0 nếu cả hai chuỗi đều giống nhau. Tất cả các ký tự đều giống nhau trong cả hai chuỗi.

Đây là một ví dụ về strcmp () khi cả hai chuỗi đều bằng nhau trong ngôn ngữ C,

Ví dụ

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

Đầu ra

Strings are equal
Value returned by strcmp() is: 0

2 lớn hơn 0 (> 0) - 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.

Đây là một ví dụ về strcmp () khi nó trả về giá trị lớn hơn 0 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

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

3. Ít hơn 0 (<0) - 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à một ví dụ về strcmp () trong ngôn ngữ C

Ví dụ

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

Đầu ra

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