Các hàm so sánh chuổi trong c năm 2024

Hàm int strcmp(const char *str1, const char *str2) so sánh chuỗi được trỏ tới bởi sr1 với chuỗi được trỏ tới bởi srt2.

Khai báo hàm strcmp() trong C

Dưới đây là phần khai báo cho strcmp() trong C:

int strcmp(const char *str1, const char *str2)

Tham số

  • str1 -- Đây là chuỗi đầu tiên để được so sánh.
  • str2 -- Đây là chuỗi thứ hai để được so sánh.

Trả về giá trị

Hàm này trả về các giá trị như sau:

  • Nếu giá trị trả về < 0 thì hàm này chỉ rằng str1 là ngắn hơn str2.
  • Nếu giá trị trả về > 0 thì hàm này chỉ rằng str2 là ngắn hơn str1.
  • Nếu giá trị trả về = 0 thì hàm này chỉ rằng str1 là bằng str2.

Ví dụ

Chương trình C sau minh họa cách sử dụng của strncmp() trong C:

include

include

int main () { char str1[15]; char str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strcmp(str1, str2); if(ret < 0) {

  printf("Chuoi str1 la ngan hon chuoi str2");
} else if(ret > 0) {
  printf("Chuoi str2 la ngan hon chuoi str1");
} else {
  printf("Chuoi str1 la bang chuoi str2");
} return(0); }

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Các hàm so sánh chuổi trong c năm 2024

Các hàm so sánh chuổi trong c năm 2024

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

So sánh 2 ký tự

Có ai biết hàm so sánh 2 ký tự trong C hay C++ ko? Hình như ko có thì phải? Chỉ có hàm strcmp() là so sánh 2 chuỗi thôi?

đề bài: Nhập 1 chuỗi ký tự từ bàn phím. Sắp xếp rồi in ra màn hình Do ko so sánh đc 2 ký tự nên m` so ánh bằng mã ascii. Nhg ko ổn lắm???

include

include

include

void main() { //clrscr(); char a[20]; int n; char tg; cout<<"Nhap chuoi: ";cin>>a; for (int i=0;itoascii(a[i])) { char tg=a[i]; a[i]=a[j]; a[j]=tg; } } cout<<"chuoi sau sx la: "< Mọi ng` xem phần sắp xếp cho m` nha

Các hàm so sánh chuổi trong c năm 2024
Biết là sai rùi nhg ko biết sửa

String là 1 một mảng các ký tự được viết liền nhau, trong lập trình thường sử dụng rất nhiều để lưu chuỗi kí tự. Để thao tác với chuỗi có rất nhiều hàm và thư viện string.h hỗ trợ nhiều hàm hữu ích để xử lý chuỗi và hàm hỗ trợ xử lý mảng nhị phân. Bài viết này đề cập tới strcmp trong C++ và sử dụng hàm strcmp trong thư viện string.h hỗ trợ xử lý chuỗi.

I. Strcmp Trong C++ Là Gì

Hàm strcmp() trong C

Hàm int strcmp(const char *str1, const char *str2) so sánh chuỗi được trỏ đến bởi sr1 với chuỗi được trỏ đến bởi srt2.

Khai báo hàm strcmp() trong C

Dưới đây là phần khai báo cho strcmp() trong C:

int strcmp(const char *str1, const char *str2) Tham số

str1 — Đây là chuỗi thứ nhất để được so sánh.

str2 — Đây là chuỗi thứ hai để được so sánh.

Trả về giá trị

Hàm này trả về các giá trị như sau:

Nếu giá trị trả về < 0 thì hàm này chỉ rằng str1 là ngắn hơn str2.

Nếu giá trị trả về > 0 thì hàm này chỉ rằng str2 là ngắn hơn str1.

Nếu giá trị trả về = 0 thì hàm này chỉ rằng str1 là bằng str2.

Các hàm so sánh chuổi trong c năm 2024
Strcmp Trong C++ Là Gì

II. Cú Pháp Hàm Strcmp Trong C+

Hàm strcmp() được dùng để so sánh hai chuỗi, việc so sánh được thực hiện về mặt từ vựng.

Cú pháp:

int strcmp( const char* lhs, const char* rhs );

Trong đó:

  • lhs và rhs là hai chuỗi cần so sánh.

Hàm sẽ trả về 1 trong những trường hợp sau:

  • Giá trị dương giả dụ ký tự khác biệt đầu tiên trong lhs lớn hơn ký tự tương ứng trong rhs.
  • Giá trị âm trường hợp ký tự khác biệt trước tiên trong lhs nhỏ hơn ký tự tương ứng trong rhs.
  • Giá trị 0 giả dụ hai chuỗi bằng nhau về mặt từ vựng.
    Các hàm so sánh chuổi trong c năm 2024
    Cú Pháp Hàm Strcmp Trong C+

III. Cách Dùng Strcmp Trong C++

Trong phần này mình sẽ thực hiện một ví dụ để mình họa cho hàm memchr() trong C++.

Cụ thể mình sẽ khai báo hai chuỗi với hai nội dung khác nhau. Sau đó gọi hàm strcmp() để so sánh và thông báo ra màn hình.

include

include

using namespace std; int main() { //khai báo hai biến lhs và rhs với hai nội dung cần so sánh char lhs[] = "Armstrong"; char rhs[] = "Army"; int result; //sử dụng hàm strcmp để so sánh hai chuỗi rồi gán kết quả cho biến result //*lưu ý: hàm strcmp sẽ trả về một số result = strcmp(lhs, rhs); //nếu hàm trả về số khác không tức là hai chuỗi khác nhau if (result != 0)

cout << lhs << " và " << rhs << " khác nhau";  
//nếu hàm trả về = 0 thì hai chuỗi giống nhau else
cout << lhs << " và " << rhs << " giống nhau";  
cout << endl << endl; //tương tự như vậy thử so sánh hai chuỗi giống nhau nhé result = strcmp(lhs, lhs); if (result != 0)
cout << lhs << " và " << lhs << " khác nhau";  
else
cout << lhs << " và " << lhs << " giống nhau";
cout << "\n-------\n"; cout << "Chương trình này được đăng tại Freetuts.net"; }

Kết quả:

Các hàm so sánh chuổi trong c năm 2024
Cách Dùng Strcmp Trong C++

Như vậy là chúng ta đã tìm hiểu xong hàm strcmp() trong C / C++. Đây là 1 hàm được dùng khá đa dạng trong những bài tâp về string, vì thế hãy luyện tập thật nhiều để sử dụng nó thành thạo nhé. Chúc các bạn thành công !!!

IV. Bài Tập So Sánh 2 Chuỗi Trong C++

+ Hàm strcmp trong string.h

Khi so sánh 2 số trong C thì ta có 1 số phép toán làm vô cùng đơn giản <, >, >=, <=, ==, !=, ngoài ra để so sánh chuỗi thì chúng ta không thể sử dụng những phép toán đó mà bắt buộc phải dùng hàm strcmp nằm trong thư viện string.h.

Hàm strcmp so sánh chuỗi s1 và chuỗi s2 và cho ta kết quả:

  • 1 Nếu s1 lớn hơn s2
  • 0 Nếu s1 giống s2
  • -1 Nếu s1 nhỏ hơn s2

Lưu ý: Trong Linux, hàm này trả về giá trị âm, dương, 0 (là khoảng cách giữa 2 ký tự khác nhau tương ứng trong s1, s2).

Ví dụ chương trình sau:

include

include

int main() {

char s1[20];  
char s2[20];                  
do  
{  
    printf("Enter s1: ");  
    gets(s1);  
    printf("Enter s2: ");  
    gets(s2);  
    int x = strcmp(s1, s2);  
    printf("x = %d", x);  
    if(x < 0) printf(" => %s < %s", s1, s2);  
    if(x > 0) printf(" => %s > %s", s1, s2);  
    if(x == 0)printf(" => %s = %s", s1, s2);  
    printf("\n\n");  
} while ( strcmp(s1, s2) != 0);  
return 0;  
}

Kết quả:

Enter s1: Hang Enter s2: Ho x = -1 => Hang < Ho Enter s1: Hong Enter s2: Hon x = 1 => Hong > Hon Enter s1: Hung Enter s2: hung x = -1 => Hung < hung Enter s1: Quan Enter s2: Quan x = 0 => Quan = Quan

Nguyên tắc so sánh

Nguyên tắc so sánh 2 chuỗi đó là duyệt lần lượt 2 từng ký tự của 2 chuỗi. So sánh mã ACSII của 2 ký tự đó, mã ký tự nào lớn hơn tức là chuỗi lớn hơn và ngừng so sánh. Nếu một chuỗi nào hết ký tự để so sanh trước thì chuỗi đó bé hơn.