Mọi người cho em hỏi hàm strcmp() trong C dùng để so sánh hai chuỗi kí tự, nhiều tài liệu nói là so sánh “độ dài” hai chuỗi, “dài hơn”, “ngắn hơn”;… Vậy thực chất cái “độ dài”, “dài hơn”, “ngắn hơn” là gì và giá trị trả về của hàm cho ta biết chính xác điều gì ạ?
Hỏi về strcmp() trong C
Đều sai cả
strcmp
so sánh theo thứ tự ASCII từ trái sang phải.
4 Likes
Hàm này trả về 3 giá trị. Không phân biệt chuỗi dài chuỗi ngắn. strcmp(s1, s2)
trả về:
- -1 nếu trong
s1
tìm thấy ký tự đứng trcs2
. (theo thứ tự bảng chữ cái) - 0 nếu
s1
giốngs2
. - 1 nếu trong
s1
tìm thấy ký tự đứng saus2
. (theo thứ tự bảng chữ cái)
Ví dụ: s1 = "abcdef", s2 = "abd"
:
- Lần lượt so sánh tứng ký tự, giống nhau so sánh tiếp.
- Cứ thế cho đến ký tự khác nhau của 2 chuỗi.
-
a = a
tiếp.
-
b = b
tiếp.
-
c != d
- Vì
c
đứng trướcd
trả về -1.
3 Likes
em cảm ơn nhiều ạ!