So Sánh Chuỗi Trong C - Strcmp - Cách Học
Có thể bạn quan tâm
Nội dung
- 1. Hàm strcmp trong string.h
- 2. Nguyên tắc so sánh
1. Hàm strcmp trong string.h
Khi so sánh 2 số trong C thì ta có một số phép toán làm rất đơn giản <, >, >=, <=, ==, !=, tuy nhiên để so sánh chuỗi thì chúng ta không thể dùng các phép toán đó mà cần 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 <stdio.h> #include <string.h> 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
2. 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.
| s1 | s2 | Kết quả | Nguyên nhân |
|---|---|---|---|
| Hang | Ho | Hang < Ho | do a < o (97 < 111) |
| Hong | Hon | Hong > Hon | do s2 hết ký tự để so sánh |
| Hung | hung | Hung < hung | do H < h (72 < 104) |
| Quan | Quan | Quan = Quan | 2 chuỗi giống nhau hoàn toàn |
Tham khảo bảng mã ACSII
Bạn có thể sẽ thích:
Từ khóa » Hàm So Sánh 2 Chuỗi Trong C
-
So Sánh Chuỗi Trong C (strcmp, Strncmp)
-
Hàm Strcmp() - So Sánh Chuỗi Trong C - VietTuts
-
Bài Tập C - So Sánh Hai Chuỗi Trong C - VietTuts
-
Hàm So Sánh 2 Chuỗi Trong C - Hàng Hiệu
-
So Sánh Hai Chuỗi Trong C
-
So Sánh 2 Chuỗi String Trong C++ - Thả Rông
-
Hướng Dẫn Các Cách So Sánh Chuỗi Trong C Strcmp - Box-edu
-
LTC 73. Lập Trình So Sánh Hai Chuỗi Trong C, Hàm Strcmp Trong C
-
Lập Trình C++ - So Sánh Hai Chuỗi
-
So Sánh Chuỗi Nhập Vào Với Chuỗi Có Sẵn - Dạy Nhau Học
-
So Sánh Chuỗi Trong C++ - Programming - Dạy Nhau Học
-
So Sánh 2 Chuỗi String Trong C++ - Xây Nhà
-
Bài 18: Các Hàm Xử Lý Chuỗi Trong Lập Trình C - Khuê Nguyễn