c - 如何改进 strspn 的实现
问题描述
size_t my_strspn(const char *string, const char *chars)
{
size_t n;
const char *p;
for (n = 0; *string; string++, n++)
{
for (p = chars; *p && *p != *string; p++);
if (!*p)
break;
}
return n;
}
有没有一种简单的方法可以消除“中断”?我试图修改 for 循环,但它们需要多做一次额外的迭代。
解决方案
我对这个论坛太新了,无法添加评论,而且我太忙(即懒惰)来测试这个,所以......
在第一个 for 循环中添加 *p 检查怎么样?:
for (n = 0; *string && *p; string++, n++)
推荐阅读
- git - npm 将本地模块链接到特定分支
- html - 为什么我的背景图片没有纵向扩展
- delphi - 用鼠标正确移动旋转图形
- react-native - react native--无法修复意外的 TypeError(见屏幕截图)
- php - 当前用户和 env 用户在通过 php 和 apache 执行 shell 脚本时不匹配
- windows - Windows批处理脚本:提示后if语句不一致
- python - 为分类特征列指定形状?
- c++ - 具有自定义构造函数的类型的动态数组分配 (C++)
- ios - Is this possible to Set ViewController Storyboard ID programmatically?
- r - 理解 foreach