C-language string matching function, which can be used for saving as needed:
#include <stdio.h> #include <stdlib.h> #include <.h> #include <assert.h> #include <time.h> badShift[ goodPostfixLastPos( *pattern, _break(flag) if(flag){ break;} flag = len = postFix_len = len - postFix_position = initStart = pos - last_start = last_start = (postFix_position == pos) ?initStart: postFix_start = (;last_start>= && postFix_start<len;last_start++,postFix_start++ flag = (pattern[last_start] == _break(! (initStart >= initStart-- postFix_position++ postFix_len-- flag?last_start-:- *calc_goodPostfixShift( *pattern, * len = ( i=;i<len;i++ goodShift[i] = len - goodPostfixLastPos(pattern,i) - *clac_badcharShift( * pLen = (i = ; i < ; i++ *(badShift+i) = (pLen != *(badShift+(unsigned )*ptrn++) = -- BMSearch( *str, * len1 = len2 = ( i=len2 - ;i< start = pos_pattern = len2 - (;pos_pattern>=;pos_pattern--,start-- (str[start] != (pos_pattern < start + (pos_pattern == (len2 - i += i += goodShift[pos_pattern + - }