C语言--编程实现字符串中子串的查找
编程实现字符串中子串的查找
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