int strStr(const char *source, const char *target) {
// write your code here
int i=0;
int j=-1;
if(source==NULL||target==NULL)//哪一个为空都找不到首个位置
return -1;
if(*target=='\0')//这时候source不为NULL,无论source是什么,空串从0开始匹配
return i;
while(*source!='\0')//source到末尾
{
j++; //需要返回的位置后移
if(*source==*target)//首字母相同
{
i=j;
const char *p = source;//申明两个指针分别指向source 和 target
const char *q = target;
while(*p==*q)
{
if(*(q+1)=='\0') //直到target到达末尾
return i;
else //否则指针后移
{
p++;
q++;
}
}
}
source++; //不相等,source后移
}
return -1; //没找到,返回-1
}
lintcode ----字符串查找
最新推荐文章于 2019-08-24 21:05:51 发布