gpt4 book ai didi

崩溃的 C 程序

转载 作者:太空宇宙 更新时间:2023-11-04 04:48:09 26 4
gpt4 key购买 nike

我正在尝试编写一种算法来搜索文档中的特定 block 。如果找到 block ,将返回 1,否则返回 0。基本上,如果 block 为“abcd”且特定长度为 2,则 block 将分为“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;

}

最佳答案

使用:如果(strncmp(&ts[i], ps, k))或者如果(strncmp(ts+i, ps, k))

注意警告。通过使用 ts[i] 你正在取消引用并与一个 char 值进行比较。 strncmp 需要一个地址 [当然要有适当的内存]

关于崩溃的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com