一、strcspn的注意事项
1、头文件为:<string.h>
2、函数声明为:size_t strcspn(const char* str1, const char* str2);
3、用于计算在第一个匹配的字符之前,有多少的不匹配的字符
4、'\0'也在处理范围内
二、strcspn的模拟实现
#include <assert.h>
#include <stdio.h>
size_t my_strcspn(const char* str1, const char* str2)
{
assert(str1 && str2);//用断言判断str1和str2是否为空指针
const char* s1 = str1;
const char* s2 = str2;
while (*s1)//遍历str1中的每个字符
{
s2 = str2;//使s2的地址回到起始位置
while (*s2)//遍历str2中的每个字符
{
if (*s1 == *s2)
{
return (size_t)(s1 - str1);
}
s2++;
}
s1++;
}
return (size_t)(s1 - str1);//如果找不到匹配的字符,则返回str1的长度
}
int main()
{
char str1[] = "Hello world";
char str2[] = "abcdef";
printf("%zu\n", my_strcspn(str1, str2));//结果为:1
return 0;
}
ps:若有不足,望指出
^_^感谢^_^