C語言strcspn():求字串互補跨度(長度)

2020-07-16 10:04:52
C語言 size_t strcspn(const char* str, const char* reject) 函數用來返回從字串 str 開頭算起,連續有幾個字元都不在 reject 中;也就是說,str 中連續有幾個字元和 reject 沒有交集。

strcspn 是 string complementary span 的縮寫,意思是“字串互補跨度(長度)”。

我們也可以換個角度看,strcspn() 返回的是 str 中第一次出現 reject 中字元的位置。

標頭檔案:string.h

語法/原型:

size_t strcspn(const char* str, const char* reject);

引數說明:
  • str:要檢索的字串。
  • reject:該字串包含了要在 str 中進行匹配的字元列表。

返回值:返回從字串 str 開頭算起,連續不在 reject 中的字元的個數;也可以理解為,str 中第一次出現 reject 中字元的位置。

【範例】演示C語言 strcspn() 函數的用法。
#include <stdio.h>
#include <string.h>

int main(){
    char str[50] = { "http://c.biancheng.net" };
    char keys[50] = { "?.,:"'-!" };
    int i = strcspn(str, keys);
    printf("The firsr punctuation in str is at position %d.n", i);

    return 0;
}
執行結果:
The firsr punctuation in str is at position 4.