char* My_strrchr(const char*dest, char src)
{
assert(dest);
char *start = NULL;
while (*dest != '\0')
{
if (*dest == src)
{
start = (char*)dest;
}
dest++;
}
return start;
}
3.strpbrk:返回第一个字符串中第一个出现在第二个字符串中的字符的地址
函数声明:char * strpbrk ( const char *, const char * );
char* My_strpbrk(const char *dest, const char *src)
{
assert(dest && src);
char *start = (char*)src;
while (*dest != '\0')
{
src = start;
while (*src != '\0')
{
if (*dest == *src)
{
return (char*)dest;
}
src++;
}
dest++;
}
return NULL;
}
4.strspn:返回str1字符串中开始部分匹配str2字符串中字符的个数
函数声明:size_t strspn ( const char *str1,const char *str2);
int My_strspn(const char *str1, const char *str2)
{
assert(str1 && str2);
int count = 0;
const char *start = str2;
while (*str1)
{
str2 = start;
while ((*str1 != *str2) && *str2)
{
str2++;
}
if (*str2 == '\0')
{
return count;
}
count++;
str1++;
}
return count;
}
5.strcspn:返回str1指向字符串中开始部分出现的不在str2指向的字符串中的字符的个数
函数声明:size_t strcspn ( const char * str1, const char * str2 );
int My_strcspn(const char *str1, const char *str2)
{
assert(str1 && str2);
int count = 0;
const char *start = str2;
while (*str1)
{
str2 = start;
while ((*str1 != *str2) && *str2)
{
str2++;
}
if (*str1 == *str2)
{
return count;
}
count++;
str1++;
}
return count;
}