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

时间:2014-07-05 05:31:47

标签: c++ c string function

char * strpbrk (char * str1, const char * str2 ); 

返回指向str1中任何字符的str1中第一个匹配项的指针,如果没有匹配则返回空指针。

int  strcspn( const char * str1, const char * str2 );

str1的初始部分的长度,不包含任何属于str2的字符。

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

1 个答案:

答案 0 :(得分:4)

这些函数在C ++编程中几乎没有任何应用。我想是的。但是,如果你想了解它,这就是答案,

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

如果没有找到任何字符,也是偶然的,strpbrk会返回空指针; IIRC,在相同情况下strcspn会在字符串末尾返回NUL 索引。

我也有关于strcspn()strpbrk()的血统解释。检查链接。