学科分类
目录
C语言

自定义字符串查找函数

字符串查找有单个字符查找和字符串查找,单个字符查找相对简单。接下来以strstr()字符串查找函数实现为例进行讲解。

例1 findStr.c

 1  #include<stdio.h>
 2  char* findStr(const char *src, const char *str)
 3  {
 4    int j=0;
 5    for (int i=0; src[i]!='\0'; i++)
 6    {
 7      if(src[i]!=str[0])
 8        continue;    
 9      while(str[j]!='\0' && src[i+j]!='\0')
 10     {
 11       j++;
 12       if(str[j]!=src[i+j])
 13       break;
 14     }
 15     if(str[j]=='\0')
 16      
 17       return &src[i];
 18   }
 19   return -1;
 20 }
 21 int main(){
 22  char* src = "Hold fast to dreams ,For if dreams die Life is a
 23  broken-winged bird That can never fly.Hold fast to dreams For 
 24  when dreams go Life is a barren field Frozen only with snow";
 25  printf("%s",findStr(src," barren "));
 26  return 0;
 27 }

例1运行结果如图1所示。

图1 例1运行结果

在例1中,第6行代码判断源字符串src中是否存在要查找的字符串str,如果有没有相等的字符串则结束本次循环从src字符串的下一个字符进行查找,若遍历源字符串后没有找见。则第19行代码退出程序并返回-1。第9~14行代码,若在查找过程中找到字符串str,在while()循环中src[i+j]的目的是在查找到字符串后向后遍历查找字符串大小的长度,在查找过程中若找见则退出循环,返回-1,若找见该字符串则返回查找字符串str在源字符串中出现的位置。

点击此处
隐藏目录