实现strstr 字符串查找:strstr是一种函数,从字符串str1中查找是否有字符串str2,
如果有,从str1中的str2位置起,返回str1的指针,如果没有,返回null。
实现strcmp 字符串比较:
设这两个字符串为str1,str2,
若str1==str2,则返回零;
若str1<str2,则返回负数;
若str1>str2,则返回正数。
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strstr(const char *p,const char *q)
{
const char *pp = p;
const char *qq = q;
assert(p);
assert(q);
while(*pp!="\0"&&*qq!="\0")
{
pp = p;
qq = q;
while(*pp&&*qq&&(*pp == *qq))
{
pp++;
qq++;
}
if(!*qq)
{
return p;
}
if(!*pp)
{
return NULL;
}
p++;
}
}
int main()
{
char *str1 = "adc123abcd1234e";
char *str2 = "abcd";
my_strstr(str1,str2);
printf("%s\n",my_strstr(str1,str2));
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int my_strcmp(const char *dst,const char *src)
{
assert(dst);
assert(src);
while(*dst&&*src)
{
if(*dst>*src)
{
return 1;
}
else if(*dst<*src)
{
return -1;
}
else
{
dst++,src++;
}
}
if(*src)
{
return -1;
}
if(*dst)
{
return 1;
}
return 0;
}
int main()
{
char *str1 = "abc";
char *str2 = "ab";
printf("%d\n",my_strcmp(str1,str2));
system("pause");
return 0;
}