c - 找出字符串中子串的个数

标签 c string search substring

我必须使用 C 语言查找字符串中子字符串的计数。 我正在使用函数 strstr但它只会找到第一次出现的情况。

我对该算法的想法类似于在字符串中搜索而 strstr 不返回 null 并且 在每个循环中对主字符串进行子字符串化。 我的问题是如何做到这一点?

最佳答案

你可以做类似的事情

int countString(const char *haystack, const char *needle){
    int count = 0;
    const char *tmp = haystack;
    while(tmp = strstr(tmp, needle))
    {
        count++;
        tmp++;
    }
    return count;
}

也就是得到结果后,从字符串的下一个位置开始重新搜索。

strstr() 不仅可以从字符串的开头开始工作,还可以从任何位置开始工作。

关于c - 找出字符串中子串的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052490/

相关文章:

c - 填充 char* 数组时出现段错误

c - 尝试在 C 函数中复制字符串时出现段错误

python - 使用 Python 将字符串中的字符转换为多个字符

database - Neo4j - 通过可选匹配和收集加速查询(慢)

带有 LIKE 的 PHP MySql 搜索匹配太多行

c - 如何在多维数组中添加数组?

jquery - 如何从/dev/console上传数据到DataTables插件

C valgrind 错误

Java String.split : Trouble using\\W as non word delimiter

C++ 使这个 Djikstra 实现更快