gpt4 book ai didi

c - 如何计算字符串中字符串的出现次数?

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:43 25 4
gpt4 key购买 nike

我必须计算一个特定的 C 字符串在一个更大的字符串中出现的次数。我正在使用 strstr() 函数通过大 C 字符串使用 char 指针进行计数和前进。问题是它似乎计数太少,就像文本的减少越来越快,跳过大块字符。我正在使用一个名为“x”的 int 类型变量来从左到右“减少”文本,但我不知道分配新值是否存在问题。

int x=0;
while((p=strstr(text+x,triG))!=NULL)
{
v[i]++;
x+=x+3+(p-(text+x));
}

text 是 char* 类型,动态分配。 triG是char[4]类型,p是char*类型。

最佳答案

您在每次匹配后将 x 的值增加太多。

int x=0;
while((p=strstr(text+x,triG))!=NULL)
{
v[i]++;
x = p - text + strlen(triG);
}

您还可以简化x 的计算。您同时添加和删除了 x - 这些抵消了。使用 strlen(triG) 而不是硬编码假设它总是 4 也更灵活一些。

关于c - 如何计算字符串中字符串的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12855515/

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