So sánh 2 tập số trong c++
Yêu cầu của chúng ta như sau: “Nhập vào hai số nguyên a, b. So sánh xem số nào lớn hơn, số nào nhỏ hơn hay hai số bằng nhau. In kết quả ra màn hình.“ Các bước để giải quyết vấn đề trên như sau:
Sau đây là chương trình thực thi chi tiết các bước trên: Để tham khảo thêm các bài tập bạn có thể click vào đây hoặc tham khảo khóa học lập trình C cơ bản để tìm hiểu kĩ hơn về các thành phần có trong bài học ý nghĩa như nào nhé. Hàm strcmp() trong C được sử dụng để so sánh 2 chuỗi. Nếu hàm strcmp(str1, str2) trả về 0 thì 2 chuỗi bằng nhau, lớn hơn 0 thì chuỗi str1 lớn hơn chuỗi str2 và ngược lại nếu nhỏ hơn 0 thì chuỗi str1 nhỏ hơn str2. include
include int main() { char str1[20], str2[20]; printf("Nhap chuoi 1: "); gets(str1); printf("Nhap chuoi 2: "); gets(str2); if (strcmp(str1, str2) == 0) { printf("2 chuoi bang nhau."); } else if (strcmp(str1, str2) > 0) { printf("Chuoi 1 lon hon chuoi 2"); } else { printf("Chuoi 1 nho hon chuoi 2"); } return 0; } Kết quả: Nhap chuoi 1: HelloC Nhap chuoi 2: HelloC++ Chuoi 1 nho hon chuoi 2 Bài viết này mình sẽ hướng dẫn các bạn sử dụng 3 hàm so sánh xâu thông dụng và cách tự xây dựng các hàm này cho riêng mình NỘI DUNG :
strcmp 1. Hàm strcmp() Hàm strcmp() Để so sánh 2 xâu trong C thì bạn không thể sử dụng các toán tử so sánh mà phải dùng hàm, quy tắc so sánh 2 xâu là xét theo thứ tự từ điển. Thứ tự từ điển được quyết định bởi mã ASCII, mã ASCII nhỏ hơn sẽ có thứ tự từ điển nhỏ hơn, ví dụ kí tự 'A' thì có thứ tự từ điển nhỏ hơn kí tự 'B' Khi so sánh 2 xâu theo thứ tự từ điển thì ta lần lượt so sánh 2 kí tự ở cùng vị trí của 2 xâu Cú pháp : int strcmp(char *s, char *t) Tham số : s và t là 2 con trỏ hoặc 2 mảng char[] Giá trị trả về :
Trong 1 số trình biên dịch thì khi s < t sẽ trả về -1 và khi s > t sẽ trả về 1. Ví dụ giá trị trả về khi so sánh 2 xâu bằng hàm strcmp xâu sxâu tstrcmp(s, t)28tech28tech abc-128tech 28aech zzzz128tech28tech028tech28techabcd-1 Ví dụ : include "stdio.h"include "string.h"include "ctype.h"int main(){ }Output : 1 Hai xau ky tu giong nhau ! Xây dựng hàm strcmp() : Để xây dựng hàm này ta cần xét 2 kí tự ở cùng vị trí của 2 xâu, nếu gặp kí tự đầu tiên khác nhau thì dựa vào thứ tự từ điển của kí tự này để suy ra thứ tự từ điển của 2 xâu ban đầu Nếu không có kí tự nào khác nhau ta so sánh tới chiều dài, nếu chiều dài cũng giống nhau thì 2 xâu bằng nhau theo thứ tự từ điển |