一、strspn的注意事项
1、头文件为:<string.h>
2、函数声明为:size_t strspn(const char* str1, const char* str2);
3、从str1的开头开始获取与str2匹配的字符个数,期间若有中断,则结束函数
4、'\0'不在处理范围内,但遇到str1的'\0'时,会结束函数
二、strspn的模拟实现
#include <stdio.h>
#include <assert.h>
size_t my_strspn(const char* str1, const char* str2)
{
assert(str1 && str2);//用断言判断str1和str2是否为空指针
size_t count = 0;
const char* s2 = str2;
while (*str1)//如果str1遇到'\0',则结束函数
{
s2 = str2;//重置s2的地址
//判断是否有匹配的字符
while ((*s2) && (*str1 != *s2))
{
s2++;
}
if (!*s2)//如果没有匹配的字符,则结束函数
{
return count;
}
count++;
str1++;//str1往后推进
}
return count;
}
int main()
{
char str1[] = "Hello world";
char str2[] = "oleH";
printf("%zu\n", my_strspn(str1, str2));//结果为:5
return 0;
}
ps:若有不足,望指出
^_^感谢阅读^_^