c语言字符串index蛮力匹配方法,循环部分 使用i,j代码怎么写
时间: 2024-10-10 20:16:48 浏览: 17
在C语言中,如果你想使用蛮力(暴力搜索)的方式,即逐字符比较来查找一个子串在另一个字符串中的位置,你可以采用双重循环,其中`i`遍历主字符串,`j`遍历子串。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 搜索子串 "pattern" 是否在字符串 "str" 中
int findSubstring(char str[], char pattern[]) {
int lenStr = strlen(str);
int lenPattern = strlen(pattern);
// 遍历主字符串
for (int i = 0; i <= lenStr - lenPattern; i++) {
// 遍历子串
for (int j = 0; j < lenPattern; j++) {
// 如果当前字符不匹配,则跳到下一个字符
if (str[i + j] != pattern[j]) {
break;
}
// 如果所有字符都匹配,则找到子串的位置
if (j == lenPattern - 1) {
return i; // 返回子串起始索引
}
}
}
// 如果找不到子串,返回 -1
return -1;
}
int main() {
char str[] = "Hello, World!";
char pattern[] = "World";
int index = findSubstring(str, pattern);
if (index != -1) {
printf("子串在主字符串中的索引: %d\n", index);
} else {
printf("子串未找到。\n");
}
return 0;
}
```
在这个例子中,外层循环`i`用于移动子串的位置,内层循环`j`负责比较当前子串字符是否匹配。
阅读全文