Strcmp c++ là gì
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ì ạ? 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 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: #include Kế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. Hàm int strcmp(const char*s1, const char *s2) là hàm dùng để so sánh hai chuỗi với nhau. Hàm sẽ so sánh hai chuỗi với nhau và trả về các giá trị tương ứng. Cú pháp:
Ta có A[] và B[]
Hàm strcmp sẽ so sánh từng hai phần tử của hai chuỗi có cùng vị trí với nhau. Cách so sánh giống với các so sánh 2 số thực. Tức là chỉ cần 1 phần tử của mảng A[] lớn hơn phần tử cùng vị trí của mảng B[] thì mảng A[] sẽ lớn hơn mảng B[]. Ví dụ X = 3.14160 và Y = 3.14159 thì ta có X > Y. Hàm int strcmp(const char *str1, const char *str2) so sánh chuỗi được trỏ tới bởi sr1 với chuỗi được trỏ tới bởi srt2. Khai báo hàm strcmp() trong CDưới đây là phần khai báo cho strcmp() trong C: int strcmp(const char *str1, const char *str2) Tham số
Trả về giá trịHàm này trả về các giá trị như sau:
Ví dụChương trình C sau minh họa cách sử dụng của strncmp() trong C: #include #include int main () { char str1[15]; char str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strcmp(str1, str2); if(ret < 0) { printf("Chuoi str1 la ngan hon chuoi str2"); } else if(ret > 0) { printf("Chuoi str2 la ngan hon chuoi str1"); } else { printf("Chuoi str1 la bang chuoi str2"); } return(0); } Biên dịch và chạy chương trình C trên sẽ cho kết quả: Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS. Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học. Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi. |