c语言用蛮力法解决字符匹配
时间: 2024-10-22 15:12:30 浏览: 19
凸包问题 蛮力法-C语言
在C语言中,蛮力法通常用于解决一些相对简单但效率较低的问题,比如查找字符串中的字符匹配。这种方法也被称为暴力搜索或穷举法。对于字符匹配,比如在一个较长的文本串中查找特定字符或子串,你可以通过遍历整个目标字符串来进行逐个比较。
例如,如果你想检查字符串str是否包含另一个子串substr,可以采用以下步骤:
```c
#include <stdio.h>
#include <string.h>
int isSubstring(char str[], char substr[]) {
int len_str = strlen(str);
int len_sub = strlen(substr);
for (int i = 0; i <= len_str - len_sub; i++) {
int match = 1;
// 检查子串在原串中是否存在
for (int j = 0; j < len_sub; j++) {
if (str[i + j] != substr[j]) {
match = 0; // 相符字符位置不一致,跳出循环
break;
}
}
if (match) {
return 1; // 找到匹配,返回1
}
}
return 0; // 如果遍历完都没有找到匹配,返回0
}
int main() {
char str[] = "Hello, world!";
char substr[] = "world";
if (isSubstring(str, substr)) {
printf("'%s' contains '%s'\n", str, substr);
} else {
printf("'%s' does not contain '%s'\n", str, substr);
}
return 0;
}
```
在这个例子中,`isSubstring()`函数会检查从索引0开始的每一个可能起始点,看能否找到完整的子串匹配。如果找到,就返回1,否则返回0。
阅读全文