c语言实现字符串模糊查询
时间: 2023-07-26 12:10:57 浏览: 50
可以采用字符串匹配算法中的模式匹配算法来实现字符串模糊查询。其中,常用的算法有暴力匹配算法、KMP算法和Boyer-Moore算法等。
以暴力匹配算法为例,其思路为对于主串S和模式串T,首先从S的第一个字符开始匹配T的第一个字符,若成功,则继续匹配下一个字符;否则,从S的第二个字符开始重新匹配。直到S匹配完全或者找到一个位置使得T匹配成功。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], pattern[50];
int i, j, len1, len2;
printf("请输入字符串:\n");
scanf("%s", str);
printf("请输入模式串:\n");
scanf("%s", pattern);
len1 = strlen(str);
len2 = strlen(pattern);
for (i = 0; i <= len1 - len2; i++)
{
j = 0;
while (j < len2 && str[i+j] == pattern[j])
{
j++;
}
if (j == len2)
{
printf("在位置 %d 处找到模式串\n", i+1);
}
}
return 0;
}
```
该代码中,输入一个字符串和一个模式串,使用暴力匹配算法进行匹配,并输出匹配成功的位置。其中,`strlen`函数用于获取字符串的长度,`while`循环用于逐个比较字符是否相等。需要注意的是,匹配成功的位置需要加1,因为C语言中字符串的下标从0开始。