size_t strcspn(const char *string1, const char *string2);
IBM的說明
Computes the length of the initial portion of the string pointed to by string1 that contains no characters from the string pointed to by string2.
我的理解是:計算string2中的所有字母 在string1中出現的經過幾次比對次數才發現string2中的字母,從string1的起始開始字元開始比對,依序比對string2中的所有字元,如下圖示意。如果發現沒有相符字元,累計計數並繼續搜尋,直到發現相符字母才停止搜尋,並回傳比對的次數。
與之前的strspn的邏輯有點顛倒,未發先string2中的字元時,需要累加次數,如下圖
程式碼直接做比較快理解,在string1中搜尋string2中的字元。
程式碼
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string1 = "Hello world";
char *string2 = "wor";
int index = strcspn(string1, string2);
printf( "index:%d\n", index);
}
執行結果
可以發現執行結果回傳4,因為發現'o'的位置剛好是比對四次後的地方。

沒有留言:
發佈留言