strpbrk函數,C語言strpbrk函數用法詳解

2020-07-16 10:04:25
如果要查詢多個字元,需要使用 strpbrk 函數。該函數在源字串(s1)中按從前到後順序找出最先含有搜尋字串(s2)中任一字元的位置並返回,空字元 null('') 不包括在內,若找不到則返回空指標。其函數原型的一般格式如下:

char *strpbrk(const char *s1,const char *s2);

例如,在 strpbrk 函數的定義如下:
char *strpbrk (const char *s, const char *accept)
{
    while (*s != '')
    {
        const char *a = accept;
        while (*a != '')
            if (*a++ == *s)
                return (char *) s;
        ++s;
    }
    return NULL;
}
如上面的程式碼所示,strpbrk 數首先依次迴圈檢查字串 s 中的字元,當被檢驗的字元在字串 accept 中也包含時(即“if(*a++==*s)”),則停止檢驗,並返回“(char*)s”。如果沒有匹配字元,則返回空指標 NULL。這裡需要注意的是,空字元 null('') 不包括在內。函數的呼叫範例如下面的程式碼所示:
int main(void)
{
    char str[] = "I welcome any ideas from readers, of course.";
    char *rc=strpbrk(str,"come");
    printf("%sn",rc);
    return 0;
}
很顯然,範例程式碼的執行結果為“elcome any ideas from readers,of course.”。