Hàm strpbrk() tìm ký tự đầu tiên trong str1 xuất hiện trong str2. Trả về con trỏ đến ký tự đó trong str1, hoặc NULL nếu không tìm thấy. Khai báo trong <string.h>.
Cú pháp
char *strpbrk(const char *str1, const char *str2);
Ví dụ
#include <stdio.h>
#include <string.h>
int main() {
const char *s1 = "Helloworld";
const char *s2 = "Blank";
char *p = strpbrk(s1, s2);
if (p)
printf("Ky tu match dau tien: '%c' (vi tri %ld)\n", *p, p - s1);
else
printf("Khong co ky tu nao match\n");
return 0;
}
Kết quả
Ky tu match dau tien: 'l' (vi tri 2)
Giải thích: s2 = "Blank" chứa {B,l,a,n,k}. Duyệt s1: H(0) e(1) l(2) -> 'l' ở index 2 thuộc s2. Trả về con trỏ đến 'l' đầu tiên.
Hàm liên quan
strchr(s, c)– Tìm 1 ký tựctrongs.strstr(s1, s2)– Tìm chuỗi cons2trongs1.strcspn(s1, s2)– Độ dài prefix KHÔNG chứa chars trong s2.strspn(s1, s2)– Độ dài prefix CHỈ chứa chars trong s2.
Ứng dụng: Parse token, tìm delimiter bất kỳ trong tập hợp (ví dụ: tách từ bằng space, comma, tab:
strpbrk(line, " \t,")).