Code c: #include #include void SoSanh[char s[],char s2[]] { int i,ok = 0; for[i=0; i s2[i]] ok = 1; else ok = 2; } } if[ok == 0] printf["Hai chuoi bang nhau!"]; else if[ok == 1] printf["Chuoi s1 = %s lon hon chuoi s2 = %s!",s,s2]; else printf["Chuoi s2 = %s lon hon chuoi s1 = %s!",s2,s]; } int main[] { char s1[100],s2[100]; printf["Nhap thu nhat: "]; gets[s1]; fflush[stdin]; printf["Nhap thu hai: "]; gets[s2]; SoSanh[s1,s2]; return 0; } |
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 , >=, 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.
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
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[].
cách trả về giá trị của hàm strcmp[]
Lần sau search google trước khi hỏi.
//en.cppreference.com/w/cpp/string/byte/strcmp
//www.cplusplus.com/reference/cstring/strcmp/
Cho em hỏi nguyên tắc so để so sánh 2 xâu , số và xâu ký tự
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