关于字符串子串查找程序,有问题,求高手指点
问题描述: 判断一个字符串(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<iostream> //#include<assert> using namespace std; int result=0; unsigned int str_str(char *src,char *dst)//判断一个字符串是否是另一个字符串的子串,输出子串在母串中第一次出现的位置 {char *pa=src; //匹配时不区分大小写 char *pb=dst; int M=strlen(src); int N=strlen(dst); int count=0; for(int i=0;i<M;i++) { if(*pb==' ') {count=i+2-N; return count; break; } if(*pa==*pb||*pa==*pb+32||*pa==*pb-32) {pa++; pb++; } else{pa++; pb=dst; } } } //主函数 int main() {char src[]="akrsd5859"; char dst[]="rsd"; result=str_str(src,dst); cout<<"result="<<result<<endl; }
这是我写的代码,可是结果根本不对,想问问大家程序哪里出了问题