我正在尝试编写一种算法来搜索文档中的特定块。如果找到该块,则返回 1,否则返回 0。基本上,如果该块为“abcd”且特定长度为 2,则该块将被拆分为“ab”和“cd”。然后搜索文档以查看是否存在“ab”或“cd”。我认为我的算法非常好,但程序不断崩溃。我认为它与strncmp有关,但我不知道如何解决它。
这是我的代码:
int main( )
{
char s1[] = "abcdef";
char s3[] = "cd";
size_t s1Size = strlen(s1);
int k = 2;
if(simple_substr_match(s3,k,s1,s1Size))
printf("Match Found\n");
else
printf("No Match Found\n");
return 0;
}
int simple_substr_match(const unsigned char *ps, int k, const unsigned char *ts, int n)
{
int isMatch;
int i;
int j;
for(i=0;i<n;i++)
{
if(strncmp(ts[i], ps, k))
{
isMatch = 1;
}
}
return isMatch;
}