Cách so sánh 2 xâu
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ả:
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: #includeKết quả:
2. Nguyên tắc so sánhNguyê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.
Tham khảo bảng mã ACSII
Em đang học về xâu và em có sử dụng hàm strcmp() trong thư viện string.h . Cho em hỏi nguyên tắc so để so sánh 2 xâu , số và xâu ký tự và cách trả về giá trị của hàm strcmp().
Lần sau search google trước khi hỏi. http://en.cppreference.com/w/cpp/string/byte/strcmp http://www.cplusplus.com/reference/cstring/strcmp/
So sánh 2 số: Toán học thuần tuý So sánh 2 kí tự/xâu: so sánh tuần tự từng kí tự, gặp kí tự nào có mã ASCII lớn hơn thì xâu đó lớn hơn. Giải thích: strcmp() is a built-in library function and is declared in header file. This function takes two strings as arguments and compare these two strings… Read More » Mã giả: for i in min(len(s), len(t)): if (s[i] == t[i]): continue else if (s[i] > t[i]): return "s > t" else if (s[i] < t[i]): return "s < t" if (len(s) == len(t)): return "s == t" else if (len(s) > len(t)): return "s > t" else if len(s) < len(t): return "s < t" Home Categories FAQ/Guidelines Terms of Service Privacy Policy |