All Projects → wooorm → levenshtein.c

wooorm / levenshtein.c

Licence: MIT license
Levenshtein algorithm in C

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to levenshtein.c

Symspell
SymSpell: 1 million times faster spelling correction & fuzzy search through Symmetric Delete spelling correction algorithm
Stars: ✭ 1,976 (+2466.23%)
Mutual labels:  fuzzy-search, fuzzy-matching, edit-distance, levenshtein, levenshtein-distance
FastFuzzyStringMatcherDotNet
A BK tree implementation for fast fuzzy string matching
Stars: ✭ 23 (-70.13%)
Mutual labels:  fuzzy-search, edit-distance, levenshtein-distance, string-matching
LinSpell
Fast approximate strings search & spelling correction
Stars: ✭ 52 (-32.47%)
Mutual labels:  fuzzy-search, edit-distance, levenshtein, levenshtein-distance
Levenshtein
The Levenshtein Python C extension module contains functions for fast computation of Levenshtein distance and string similarity
Stars: ✭ 38 (-50.65%)
Mutual labels:  levenshtein, levenshtein-distance, string-matching
Symspellpy
Python port of SymSpell
Stars: ✭ 420 (+445.45%)
Mutual labels:  fuzzy-search, fuzzy-matching, levenshtein
Quickenshtein
Making the quickest and most memory efficient implementation of Levenshtein Distance with SIMD and Threading support
Stars: ✭ 204 (+164.94%)
Mutual labels:  edit-distance, levenshtein, levenshtein-distance
stringdistance
A fuzzy matching string distance library for Scala and Java that includes Levenshtein distance, Jaro distance, Jaro-Winkler distance, Dice coefficient, N-Gram similarity, Cosine similarity, Jaccard similarity, Longest common subsequence, Hamming distance, and more..
Stars: ✭ 60 (-22.08%)
Mutual labels:  fuzzy-matching, levenshtein, levenshtein-distance
Fuzzball.js
Easy to use and powerful fuzzy string matching, port of fuzzywuzzy.
Stars: ✭ 225 (+192.21%)
Mutual labels:  fuzzy-search, fuzzy-matching, levenshtein
bolt.nvim
⚡ Ultrafast multi-pane file manager for Neovim with fuzzy matching
Stars: ✭ 100 (+29.87%)
Mutual labels:  fuzzy-search, fuzzy-matching
fuzzy-search
A collection of algorithms for fuzzy search like in Sublime Text.
Stars: ✭ 49 (-36.36%)
Mutual labels:  fuzzy-search, fuzzy-matching
Leaderf
An efficient fuzzy finder that helps to locate files, buffers, mrus, gtags, etc. on the fly for both vim and neovim.
Stars: ✭ 1,733 (+2150.65%)
Mutual labels:  fuzzy-search, fuzzy-matching
fish-fzy
fzy inegration with fish. Search history, navigate directories and more. Blazingly fast.
Stars: ✭ 18 (-76.62%)
Mutual labels:  fuzzy-search, fuzzy-matching
Liquidmetal
💦🤘 A mimetic poly-alloy of the Quicksilver scoring algorithm, essentially LiquidMetal. </Schwarzenegger Voice>
Stars: ✭ 279 (+262.34%)
Mutual labels:  fuzzy-search, fuzzy-matching
Fuzzysearch
Find parts of long text or data, allowing for some changes/typos.
Stars: ✭ 157 (+103.9%)
Mutual labels:  fuzzy-search, fuzzy-matching
Yoyo-leaf
Yoyo-leaf is an awesome command-line fuzzy finder.
Stars: ✭ 49 (-36.36%)
Mutual labels:  fuzzy-search, fuzzy-matching
SymSpellCppPy
Fast SymSpell written in c++ and exposes to python via pybind11
Stars: ✭ 28 (-63.64%)
Mutual labels:  fuzzy-search, fuzzy-matching
Tntsearch
A fully featured full text search engine written in PHP
Stars: ✭ 2,693 (+3397.4%)
Mutual labels:  fuzzy-search, fuzzy-matching
Symspellcompound
SymSpellCompound: compound aware automatic spelling correction
Stars: ✭ 61 (-20.78%)
Mutual labels:  fuzzy-search, levenshtein
Fuse Swift
A lightweight fuzzy-search library, with zero dependencies
Stars: ✭ 767 (+896.1%)
Mutual labels:  fuzzy-search, fuzzy-matching
Faint
Extensible TUI fuzzy file file explorer
Stars: ✭ 82 (+6.49%)
Mutual labels:  fuzzy-search, fuzzy-matching

levenshtein(3)

Build Coverage

Vladimir Levenshtein’s edit distance algorithm1 as a C library. There’s also a CLI: levenshtein(1), and a JavaScript version.

Installation

CLib:

$ clib install wooorm/levenshtein.c

Or clone the repo.

Usage

size_t levenshtein(const char *a, const char *b);

#include <stdio.h>
#include "levenshtein.h"

int
main(int argc, char **argv) {
  char *a = argv[1];
  char *b = argv[2];

  if (argc < 3) {
    fprintf(stderr, "\033[31mLevenshtein expects two arguments\033[0m\n");

    return 1;
  }

  printf("%zu\n", levenshtein(a, b));
}

size_t levenshtein_n(const char *a, const size_t length, const char *b, const size_t bLength);

#include <stdio.h>
#include "levenshtein.h"

int
main() {
  const char *a = "foobar";
  const char *b = "hello";

  printf("%zu\n", levenshtein_n(a, 6, b, 5));
}

License

MIT © Titus Wormer

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].