什么是strspn?

Lan*_*ell 7 php function built-in

在今天的工作中,我们试图想出你将使用strspn的任何理由.

我搜索了谷歌代码,看看它是否曾以有用的方式实现,并且空白.我无法想象一种情况,我真的需要知道只包含另一个字符串中的字符的字符串的第一段的长度.有任何想法吗?

Bil*_*win 4

尽管您链接到 PHP 手册,但该strspn()函数来自 C 库,以及strlen()strcpy()strcmp()等。

strspn()是一个方便的替代方案,可以替代逐个字符地挑选字符串,测试这些字符是否与一组值中的一个匹配。在编写标记器时它很有用。另一种选择strspn()是使用大量重复且容易出错的代码,如下所示:

for (p = stringbuf; *p; p++) {
  if (*p == 'a' || *p == 'b' || *p = 'c' ... || *p == 'z') {
    /* still parsing current token */
  }
}
Run Code Online (Sandbox Code Playgroud)

你能发现错误吗?:-)

当然,在内置支持正则表达式匹配的语言中,strspn()这没有什么意义。但是当用 C 语言编写 DSL 的基本解析器时,它非常漂亮。