C语言检测字符串相似度
时间: 2024-11-22 22:28:25 浏览: 19
在C语言中,检测字符串相似度通常涉及到字符串匹配算法,比如常见的Levenshtein距离算法(也称为编辑距离),它衡量了两个字符串之间通过插入、删除或替换字符最少需要的操作次数来达到一致的程度。另一种方法是使用余弦相似度,但这更适用于文本向量化后的比较。
以下是使用Levenshtein距离算法的一个简单示例:
```c
#include <stdio.h>
#include <string.h>
int levenshtein_distance(const char *s1, const char *s2) {
int m = strlen(s1);
int n = strlen(s2);
int dp[m + 1][n + 1];
for (int i = 0; i <= m; ++i) {
dp[i][0] = i;
}
for (int j = 0; j <= n; ++j) {
dp[0][j] = j;
}
for (int i = 1; i <= m; ++i) {
for (int j = 1; j <= n; ++j) {
if (s1[i - 1] == s2[j - 1]) {
dp[i][j] = dp[i - 1][j - 1];
} else {
dp[i][j] = 1 + min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);
}
}
}
return dp[m][n];
}
int main() {
char str1[] = "kitten";
char str2[] = "sitting";
printf("The Levenshtein distance between '%s' and '%s' is %d.\n", str1, str2, levenshtein_distance(str1, str2));
return 0;
}
```
阅读全文