Tóm Tắt
I. Strcmp Trong C + + Là Gì
Hàm strcmp() trong C
Hàm int strcmp ( const char * str1, const char * str2 ) so sánh chuỗi được trỏ đến bởi sr1 với chuỗi được trỏ đến bởi srt2 .
Khai báo hàm strcmp() trong C
Bạn đang đọc: Strcmp Trong C++ – Techacademy
Dưới đây là phần khai báo cho strcmp ( ) trong C :
int strcmp(const char *str1, const char *str2)
Tham số
str1 — Đây là chuỗi thứ nhất để được so sánh.
str2 — Đây là chuỗi thứ hai để được so sánh.
Trả về giá trị
Hàm này trả về những giá trị như sau :
Nếu giá trị trả về < 0 thì hàm này chỉ rằng str1 là ngắn hơn str2 .
Nếu giá trị trả về > 0 thì hàm này chỉ rằng str2 là ngắn hơn str1 .
Nếu giá trị trả về = 0 thì hàm này chỉ rằng str1 là bằng str2 .
II. Cú Pháp Hàm Strcmp Trong C +
Hàm strcmp ( ) được dùng để so sánh hai chuỗi, việc so sánh được thực thi về mặt từ vựng .
Cú pháp :
int strcmp( const char* lhs, const char* rhs );
Trong đó:
- lhs và rhs là hai chuỗi cần so sánh.
Hàm sẽ trả về 1 trong những trường hợp sau :
- Giá trị dương giả dụ ký tự khác biệt đầu tiên trong lhs lớn hơn ký tự tương ứng trong rhs.
- Giá trị âm trường hợp ký tự khác biệt trước tiên trong lhs nhỏ hơn ký tự tương ứng trong rhs.
- Giá trị 0 giả dụ hai chuỗi bằng nhau về mặt từ vựng.
III. Cách Dùng Strcmp Trong C + +
Trong phần này mình sẽ thực thi một ví dụ để mình họa cho hàm memchr ( ) trong C + + .
Cụ thể mình sẽ khai báo hai chuỗi với hai nội dung khác nhau. Sau đó gọi hàm strcmp ( ) để so sánh và thông tin ra màn hình hiển thị .
#include#include using namespace std; int main() { //khai báo hai biến lhs và rhs với hai nội dung cần so sánh char lhs[] = "Armstrong"; char rhs[] = "Army"; int result; //sử dụng hàm strcmp để so sánh hai chuỗi rồi gán kết quả cho biến result //*lưu ý: hàm strcmp sẽ trả về một số result = strcmp(lhs, rhs); //nếu hàm trả về số khác không tức là hai chuỗi khác nhau if (result != 0) cout << lhs << " và " << rhs << " khác nhau"; //nếu hàm trả về = 0 thì hai chuỗi giống nhau else cout << lhs << " và " << rhs << " giống nhau"; cout << endl << endl; //tương tự như vậy thử so sánh hai chuỗi giống nhau nhé result = strcmp(lhs, lhs); if (result != 0) cout << lhs << " và " << lhs << " khác nhau"; else cout << lhs << " và " << lhs << " giống nhau"; cout << "\n-------------------------------\n"; cout << "Chương trình này được đăng tại Freetuts.net"; }
Kết quả :
Như vậy là tất cả chúng ta đã khám phá xong hàm strcmp ( ) trong C / C + +. Đây là 1 hàm được dùng khá phong phú trong những bài tâp về string, do đó hãy rèn luyện thật nhiều để sử dụng nó thành thạo nhé. Chúc những bạn thành công xuất sắc ! ! !
IV. Bài Tập So Sánh 2 Chuỗi Trong C + +
+ Hàm strcmp trong string.h
Khi so sánh 2 số trong C thì ta có 1 số ít phép toán làm vô cùng đơn thuần <, >, > =, < =, = =, ! =, ngoài những để so sánh chuỗi thì tất cả chúng ta không hề sử dụng những phép toán đó mà bắt buộc 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 hiệu quả :
- 1 Nếu s1 lớn hơn s2
- 0 Nếu s1 giống s2
- -1 Nếu s1 nhỏ hơn s2
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#include int main() { char s1[20]; char s2[20]; do { printf("Enter s1: "); gets(s1); printf("Enter s2: "); gets(s2); int x = strcmp(s1, s2); printf("x = %d", x); if(x < 0) printf(" => %s < %s", s1, s2); if(x > 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
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 .
s1 s2 Kết quả Nguyên nhâ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
Source: https://final-blade.com
Category: Kiến thức Internet