Hàm thư viện C char *strstr(const char *haystack, const char *needle) tìm lần xuất hiện đầu tiên của chuỗi con needle trong chuỗi haystack. Ký tự kết thúc '\0' không được so sánh.
Mảng các ký tự được gọi là chuỗi.
Khai báo
Cú pháp 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 strstr()
- Dùng để tìm kiếm xem chuỗi con có xuất hiện trong chuỗi chính hay không.
- Trả về con trỏ tới lần xuất hiện đầu tiên của s2 trong s1.
Cú pháp
strstr(mainstring, substring);
Ví dụ 1
Chương trình sau minh họa sử dụng hàm strstr():
#include <stdio.h>
void main() {
char a[30], b[30];
char *found;
printf("Nhập một chuỗi:\n");
gets(a);
printf("Nhập chuỗi cần tìm:\n");
gets(b);
found = strstr(a, b);
if (found)
printf("%s tìm thấy trong %s ở vị trí %d", b, a, found - a);
else
printf("-1 vì chuỗi không tìm thấy");
}
Kết quả
Nhập một chuỗi: how are you Nhập chuỗi cần tìm: you you tìm thấy trong how are you ở vị trí 8
Ví dụ 2
Chương trình C khác tìm chuỗi con trong chuỗi chính bằng hàm thư viện strstr:
#include <stdio.h>
#include <string.h>
void main() {
char mainstring[50], substring[50];
char *exists;
printf("Nhập chuỗi chính:\n");
gets(mainstring);
printf("Nhập chuỗi con muốn kiểm tra:");
gets(substring);
exists = strstr(mainstring, substring);
if (exists) {
printf("%s tồn tại trong %s", substring, mainstring);
} else {
printf("'%s' không có trong '%s'", substring, mainstring);
}
}
Kết quả
Nhập chuỗi chính: TutorialsPoint c Programming Nhập chuỗi con muốn kiểm tra: Programming Programming tồn tại trong TutorialsPoint c Programming