strcspn()和strpbrk()有什么区别?

sar*_*dar 5 c c++ string function

char * strpbrk (char * str1, const char * str2 ); 
Run Code Online (Sandbox Code Playgroud)

返回指向作为str2一部分的任何字符的str1中第一个匹配项的指针,如果没有匹配则返回空指针.

int  strcspn( const char * str1, const char * str2 );
Run Code Online (Sandbox Code Playgroud)

str1的初始部分的长度不包含作为str2一部分的任何字符.

似乎两者都一样,有什么重大差异吗?

小智 5

这些函数在 C++ 编程中几乎没有任何应用。嗯,我是这么认为的。但如果你想知道这里是答案,

在您的问题中,strcspn返回一个字符位置, strpbrk返回一个指针。

也偶然地,如果没有找到字符,则strpbrk返回一个空指针;IIRC,同样情况下strcspn返回字符串末尾的NUL索引

我也得到了关于strcspn()strpbrk()的下降解释。检查链接。