Mystrchr
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char* Mystrchr(const char* str1, char str2)
{
assert(str1);
while (*str1)
{
if( *str1 == str2)
{
return (char*)str1;
}
str1++;
}
return NULL;
}
int main()
{
char* str1 = "abcder";
char str2 = 'b';
char* ret = Mystrchr(str1, str2);
printf("%s\n", ret);
system("pause");
return 0;
}
Mystrstr
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char* Mystrstr(const char* str1, const char* str2)
{
assert(str1 && str2);
const char* s1 = str1;
const char* s2 = str2;
const char* cur = str1;
if (str2 == '\0')
return (char*)str1;
while (*cur)
{
s1 = cur;
s2 = str2;
//chazhao
while (*s1 == *s2 && *s1 && *s2)
{
s1++;
s2++;
}
if (*s2 == '\0')
{
return (char*)cur;
}
cur++;
}
return NULL;
}
int main()
{
char str1[] = "abbbcgygy";
char* str2 = "bbc";
char* ret = Mystrstr(str1, str2);
printf("%s\n", ret);
system("pause");
return 0;
}
不能理解的话,可以像上图一样用画图的方式演示一遍,这样就会很快理解。