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
s1tìm thấy ký tự đứng trcs2. (theo thứ tự bảng chữ cái) - 0 nếu
s1giốngs2. - 1 nếu trong
s1tì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 ạ!
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?