c语言字符串index蛮力匹配方法,循环部分
时间: 2024-10-10 08:16:52 浏览: 23
在C语言中,字符串的暴力(蛮力)匹配通常是指线性搜索来查找子串(模式)在主串(字符串)中的位置。如果我们要检查子串"pattern"是否出现在主串"str"中,一种简单的蛮力方法是使用循环遍历:
```c
#include <stdio.h>
#include <string.h>
int string_index(char str[], char pattern[]) {
int i = 0;
int j = 0;
// 主串长度
int len_str = strlen(str);
// 模式串长度
int len_pattern = strlen(pattern);
while (i <= len_str - len_pattern) {
// 对于每个位置i,比较子串str[i:i+len_pattern]与pattern是否相等
if (strcmp(&str[i], pattern) == 0) {
return i; // 找到匹配,返回起始位置i
}
i++; // 移动到下一个字符的位置继续比较
}
return -1; // 如果遍历完都没有找到匹配,则返回-1表示未找到
}
int main() {
char str[] = "Hello, World!";
char pattern[] = "World";
int index = string_index(str, pattern);
if (index != -1) {
printf("Pattern found at index %d\n", index);
} else {
printf("Pattern not found in the string.\n");
}
return 0;
}
```
在这个例子中,`while`循环会一直执行直到找不到子串为止,或者找到了匹配,此时就会返回匹配的开始索引。如果循环结束仍未找到匹配,函数会返回-1。
阅读全文