What is the result of the statement strcmp("abcdef","abdc")?

3 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "-1". Hàm strcmp so sánh hai chuỗi theo từng byte cho tới vị trí đầu tiên khác nhau rồi trả về dấu của hiệu hai mã ký tự tại vị trí đó. Hai chuỗi abcdef và abdc trùng nhau ở hai ký tự đầu, đến vị trí thứ ba thì một bên là c có mã 99, bên kia là d có mã 100, hiệu là số âm nên hàm trả về giá trị âm, và trong danh sách chỉ có đúng một số âm. Giá trị "1" ứng với trường hợp chuỗi thứ nhất lớn hơn theo thứ tự từ điển, tức ký tự khác nhau đầu tiên của nó phải có mã lớn hơn, điều không xảy ra ở đây. Giá trị "0" chỉ xuất hiện khi hai chuỗi giống nhau hoàn toàn kể cả độ dài, còn abcdef và abdc đã lệch ngay ký tự thứ ba nên hàm dừng tại đó mà không cần xét phần còn lại. Bản chất cần nhớ: chuẩn C chỉ bảo đảm dấu của kết quả, trị tuyệt đối do thư viện quyết định, nên luôn đọc kết quả theo dấu.

Cùng phần 8

Xuất hiện trong 1 bộ đề