strcspn的用法?

苦逼码农 2016-03-18 09:29:10
char str[] = "fcba73";
char keys[] = "1234567890";
int i;
i = strcspn (str,keys);
printf ("The first number in str is at position %d.\n",i+1);


为什么结果是5?
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 版主 2016-03-18
  • 打赏
  • 举报
回复
原型:size_t strcspn(const char *s, const char * reject); strcspn()从参数s 字符串的开头计算连续的字符, 而这些字符都完全不在参数reject 所指的字符串中. 简单地说, 若strcspn()返回的数值为n, 则代表字符串s 开头连续有n 个字符都不含字符串reject 内的字符. 楼主给的keys[] = "1234567890"; 从起始位置开始一个计数,只要字符串中出现1,2,3,4,5,6,7,8,9,0中的任何一个数字,函数就返回了,返回值是该位置之前字符串的长度(并不是要完全匹配上key才行,只要匹配到key中的任何一个字符就行) 所以返回了4,,打印值是5

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧