这两个函数的区别是一个strchr返回的是一个字符第一次在字符串里出现的位置
而strstr返回的是一个字符串在另一个字符串第一次出现的位置。
char* mystrchr(const char* str, char c)
{
if (*str == NULL)
{
return NULL;
}
char* s1 = (char*)str;
while (*s1)
{
if (*s1 == c)
{
return s1;
}
s1++;
}
return NULL;
}
int main()
{
char* str = "abcccdef";
char c = 'd';
char* ret = mystrchr(str, c);
printf("%s\n", ret);
system("pause");
return 0;
}
const char* strstr(const char* src, const char* sub)
{
const char *bp;
const char *sp;
if (!src || !sub)
{
return src;
}
/* 遍历src字符串 */
while (*src)
{
/* 用来遍历子串 */
bp = src;
sp = sub;
do
{
if (!*sp) /*到了sub的结束位置,返回src位置 */
return src;
} while (*bp++ == *sp++);
src++;
}
return NULL;
}