判断一个字符串(dst)是否是另一个字符串(src)的子串;
输出子串在母串中的第一次出现的起始位置;
匹配的时候不区分大小写;
不能使用库函数(使用库函数按0分计算);
要求实现函数:
unsigned int str_str(char * src, char *dst);
返回:如果dst是src的子串 则返回起始位置 如果不是 则返回0
输入:src 指向母串的指针; dst 指向子串的指针
示例
src->akrsd5859 dst->rsd
则返回3
src->Rstsawerst36ds dst->rst
则返回8
src->dfsge dst-> dfsgesa
则返回0
#include #include #include using namespace std; unsigned int str_str(char * src, char *dst) { size_t m=strlen(src); size_t n=strlen(dst); string s1(src,src+m); string s2(dst,dst+n); if(n>m) return 0; else if(n<=m){ typedef string::iterator iter; iter begit=s1.begin(); iter endit=s1.begin()+n; int counts=0; while(endit+counts!=s1.end()){ string x(begit+counts,endit+counts); if(x==s2){return (counts+1); } else{ ++counts; }
}
}
else {return 0;}
} int main() {char src[]="akrsd5859"; char dst[]="rsd"; unsigned int result; result=str_str(src,dst); cout<<"result="<<result<<endl;
return 0; }