当前位置:  开发笔记 > 前端 > 正文

strpbrk代表什么?

如何解决《strpbrk代表什么?》经验,为你挑选了3个好方法。

strpbrk()在C中做低级字符串工作时偶尔使用过,但我从来没有弄清楚它代表什么.我总是在脑海里把它称为"搅拌树皮",但这种感觉从来都不是很正确.

它不具有任何的其他字符串的功能,例如,作为一个明显词源strchr(STR荷兰国际集团CH一个ř ACTER)或strspn(STR荷兰国际集团SP一个Ñ).

我隐约记得在某处读到所有原始标准库函数都限制为7个字符的名称要么保持与Fortran兼容,要么因为在原始C标准中,长度超过7个字符的标识符被认为等同于它们的7个字符前缀或一些东西.任何人都可以确认/否认/澄清这个吗?



1> 小智..:

以下对话建议"String Pointer Break":http: //www.cpptalk.net/what-strspn-and-strpbrk-stands-for--vt1253.html

事实上,Microsoft文档案例是StrPBrk,并且倾向于确认单词的分裂:http://msdn.microsoft.com/en-us/library/bb760010(VS.85) .aspx

最后这证实了这一点:http: //www.gnu.org/software/libtool/manual/libc/Search-Functions.html

strpbrk("字符串指针中断")函数与strcspn相关,除了它返回指向字符串中第一个字符的指针,该字符串是set stopset的成员而不是初始子字符串的长度.如果未找到stopset中的此类字符,则返回空指针.



2> rivy..:

来自GNU C Library文档:

功能:char*strpbrk(const char*string,const char*stopset)

strpbrk("字符串指针中断")函数与strcspn相关,除了它返回指向字符串中第一个字符的指针,该字符串是set stopset的成员而不是初始子字符串的长度.如果未找到stopset中的此类字符,则返回空指针.

例如,

strpbrk("你好,世界","\ t \n,.;!?")=>",世界"

该函数返回指向STOPSET(又名BREAKSET)中第一个字符的指针.我精神上把它读作"为STR ING,返回P ointer到BR EA ķ ".



3> Michael Burr..:

至于你的另一个问题:

我隐约记得在某处读到所有原始标准库函数都限制为7个字符的名称要么保持与Fortran兼容,要么因为在原始C标准中,长度超过7个字符的标识符被认为等同于它们的7个字符前缀或一些东西.任何人都可以确认/否认/澄清这个吗?

原来的ANSI C标准说,这是实现定义如何外部符号字符的数量会显著,但它必须是至少6个字符(和执行被允许是不敏感的情况下他们).之所以这样做是因为系统经常会遇到这种类型的限制(无论是来自FORTRAN库,链接器限制还是其他).

因此,虽然您将看到外部名称长于标准库中的外部名称,但这些名称中没有两个以相同的6个字符序列开头.

FWIW,C99最低可达31个字符.C++标准(1998)说,实现必须记录外部名称的重要性,并建议它至少为1024个字符.我知道Borland C++ 5.5有250个字符的限制,这会导致问题,特别是使用模板.


感谢您回答问题的另一半,我个人觉得这很有趣.
推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有