Hàm thư viện C int strcmp(const char *str1, const char *str2) so sánh chuỗi trỏ bởi str1 với chuỗi trỏ bởi str2.
Mảng các ký tự được gọi là chuỗi.
Khai báo
Khai báo mảng:
char stringname[size];
Ví dụ: char string[50]; chuỗi độ dài 50 ký tự.
Khởi tạo
- Sử dụng hằng ký tự đơn lẻ:
char string[10] = {'H', 'e', 'l', 'l', 'o', '\0'};
- Sử dụng hằng chuỗi:
char string[10] = "Hello";
Truy cập - Chuỗi điều khiển "%s" dùng để truy cập chuỗi cho đến khi gặp '\0'.
Hàm strcmp()
- Hàm này so sánh hai chuỗi.
- Trả về hiệu mã ASCII của hai ký tự đầu tiên không khớp trong cả hai chuỗi.
So sánh chuỗi
Cú pháp:
int strcmp(string1, string2);
Nếu hiệu = 0 ------ string1 = string2
Nếu hiệu dương ------- string1 > string2
Nếu hiệu âm ------- string1 < string2


Chương trình ví dụ
Chương trình sau minh họa sử dụng strcmp():
#include <stdio.h>
main() {
char a[50], b[50];
int d;
printf("Nhập 2 chuỗi:\n");
scanf("%s %s", a, b);
d = strcmp(a, b);
if (d == 0)
printf("%s bằng %s", a, b);
else if (d > 0)
printf("%s lớn hơn %s", a, b);
else if (d < 0)
printf("%s nhỏ hơn %s", a, b);
}
Kết quả
Nhập 2 chuỗi: bhanu priya bhanu nhỏ hơn priya
Ví dụ khác so sánh hai chuỗi dùng strcmp:
#include <stdio.h>
#include <string.h>
void main() {
char string1[25], string2[25];
int value;
printf("Nhập chuỗi 1: ");
gets(string1);
printf("Nhập chuỗi 2: ");
gets(string2);
value = strcmp(string1, string2);
if (value == 0) {
printf("%s giống %s", string1, string2);
} else if (value > 0) {
printf("%s lớn hơn %s", string1, string2);
} else {
printf("%s nhỏ hơn %s", string1, string2);
}
}
Kết quả
Nhập chuỗi 1: Tutorials Nhập chuỗi 2: Point Tutorials lớn hơn Point