5, so sánh với strcspn.">
 Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm strspn() trong C

Hàm strspn() tính độ dài đoạn đầu chuỗi str1 chỉ chứa các ký tự có trong chuỗi str2. Dừng tại ký tự đầu tiên không nằm trong str2. Khai báo trong <string.h>.

Cú pháp

size_t strspn(const char *str1, const char *str2);

Ví dụ

#include <stdio.h>
#include <string.h>

int main() {
    const char s1[] = "Helloworld!";
    const char s2[] = "Hello";
    size_t len = strspn(s1, s2);
    printf("Do dai doan dau chi chua ky tu cua s2: %zu\n", len);  // 5
    return 0;
}

Kết quả

Do dai doan dau chi chua ky tu cua s2: 5

Giải thích: s2 = "Hello" chứa {H,e,l,o}. Duyệt s1: H(0) e(1) l(2) l(3) o(4) -> đều trong s2. Ký tự tiếp theo 'w' (index 5) không trong s2 -> dừng. Trả về 5.

strspn vs strcspn

HàmTínhDừng khi
strspnĐộ dài prefix CHỈ chứa chars trong str2Gặp char KHÔNG trong str2
strcspnĐộ dài prefix KHÔNG chứa chars trong str2Gặp char CÓ trong str2

Mối quan hệ: strspn(s1, s2) + strcspn(s1 + strspn(s1, s2), s2) == strlen(s1) (nếu s2 không rỗng).