strspn和strcspn在string.h 文件中声明。用于字符串的起始位置对字符计数。
原型如下:
size_t strspn(char const *str , char const *group);
size_t strcspn(char const *str, char const *group);
group字符串指定一个或多个字符。strspn返回str起始位置匹配group中任意字符的字符数。简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。
strcspn返回str起始位置不在group中任意字符的字符数。简单地说,若strcspn()返回的数值为n,则代表字符串s1开头连续有n个字符都不含字符串s2内的字符。
strspn()的实现如下;
int strspn(const char *s, const char *accept)
{
const char *p;
const char *a;
size_t count = 0;
for (p = s; *p != '\0'; ++p) {
for (a = accept; *a != '\0'; ++a) {
if (*p == *a)
break;
}
if (*a == '\0')
return count;
++count;
}
return count;
}