编程实现字符串中子串的查找
1 #include <stdio.h>
2 #include <assert.h>
3 //查找字符串中的某个字符串的位置
4 const char *strstr(const char* src,const char* sub) 5 { 6 const char *bp; 7 const char *sp; 8 if(src==NULL || NULL==sub)//判断src与sub的有效性
9 { 10 return src; 11 } 12 while(*src)//遍历src字符串
13 { 14 bp=src;//用于src的遍历
15 sp=sub;//用于sub的遍历
16 do
17 { //遍历sub字符串
18 if(!*sp)//如果到了sub字符串结束符位置
19 return src;//表示找到了sub字符串,退出
20 }while(*bp++ == *sp++); 21 src += 1; 22 } 23 return NULL; 24 } 25
26 int main() 27 { 28 char p[] = "12345"; 29 char q[] = "34"; 30 char *r = strstr(p,q); 31 printf("r:%s\n",r); 32
33 return 0; 34 }
程序运行结果:
r:345