C语言之字符串模糊查询方法的实现

 更新时间:2015年07月21日 10:19:30   作者:gisjxd  
本篇文章主要为大家介绍字符串模糊查询的C语言程序编写方法,有需要的朋友可以参考下

字符串模糊查询,主要是输入不完全的信息进行查找,即每次查找的是待查询的内容中是否含有输入的内容,如果有,则表示找到了。下面详细的介绍下模糊查询的实现方法,代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, const char * argv[])
{
  char str[] = "hello welcome to china\0"; //源字符串
  printf("input a string:\n");       
  char str2[20];              //要查找的字符串
  fgets(str2, 19, stdin);
  char *res;
  res = memchr(str, str2[0], strlen(str));  //根据要查找的字符串第一个字符,切割源字符串
  if (res == NULL)
  {
    printf("find nothing...\n");
    return 0;
  }
  
  int n;
  while (1)
  {
    n = memcmp(res, str2, strlen(str2) - 1); //比较
    if (n != 0)
    {
      if (strlen(res) <= strlen(str2))  //切割出的字符串小于要查找字符串的长度
      {
        printf("find nothing...\n");
        return 0;
      }
      else
      {  
       //根据要查找的第一个字符继续切割
        res = memchr(res + 1, str2[0], strlen(res));  
        if (res == NULL)
        {
          printf("find nothing...\n");
          return 0;
        }
         
      }
    }
    else
    { //如果n = 0,找到
      printf("%s is found..\n", str2);
      return 0;
    }
  }
}

通过以上具体的实现代码,希望大家能够理解,对大家有所帮助。

相关文章

  • OpenCV实现拼图算法

    OpenCV实现拼图算法

    这篇文章主要为大家详细介绍了OpenCV实现拼图算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Matlab实现带竖线散点的核密度图的绘制

    Matlab实现带竖线散点的核密度图的绘制

    核密度估计是用于估计随机变量概率密度函数的一种非参数方法。核密度图不失为一种用来观察连续型变量分布的有效方法。本文将用Matlab实现带竖线散点的核密度图的绘制,感兴趣的可以了解一下
    2022-08-08
  • 详解C语言在STM32中的内存分配问题

    详解C语言在STM32中的内存分配问题

    这篇文章主要介绍了C语言在STM32中的内存分配,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C++核心编程之占位参数和默认参数

    C++核心编程之占位参数和默认参数

    这篇文章主要介绍了C++核心编程之占位参数和默认参数,c++中函数的形参列表中的形参是可以有默认值的,函数的形参列表里可以有占位参数,用来占位,调用函数时必须填补位置。下面更多相关内容的详细介绍,需要的小伙伴可以参考一下
    2022-03-03
  • 详解C语言实现空间索引四叉树

    详解C语言实现空间索引四叉树

    本文主要介绍了用C语言实现四叉树,对算法感兴趣的同学,可以参考下,并且试验一下。
    2021-05-05
  • C语言实现三子棋小游戏的示例代码

    C语言实现三子棋小游戏的示例代码

    这篇文章主要介绍了如何通过C语言实现三子棋小游戏,三子棋小游戏的实现主要依赖于循环语句、函数和数组,感兴趣的小伙伴可以尝试一下
    2022-10-10
  • C语言分别实现栈和队列详解流程

    C语言分别实现栈和队列详解流程

    栈和队列,严格意义上来说,也属于线性表,因为它们也都用于存储逻辑关系为 "一对一" 的数据,但由于它们比较特殊,因此将其单独作为一章,做重点讲解
    2022-04-04
  • 基于QT的TCP通信服务的实现

    基于QT的TCP通信服务的实现

    在项目开发过程中,很多地方都会用到TCP通信,本文主要介绍了基于QT的TCP通信服务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • c++中explicit与mutable关键字的深入探究

    c++中explicit与mutable关键字的深入探究

    这篇文章主要给大家介绍了关于c++中explicit与mutable关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • windows下安装QT及visual studio 2017搭建开发环境

    windows下安装QT及visual studio 2017搭建开发环境

    这篇文章主要介绍了windows下安装QT及visual studio 2017搭建开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论