是否有一个C函数来查找字符串中第二次出现的子字符串?

T.T*_*.T. 0 c string search

是否有一个C函数来查找字符串中第二次出现的子字符串?

即字符串 - "213文件状态550访问被拒绝.550访问被拒绝."

此功能将返回"550发现两次"....

Die*_*Epp 11

使用strstr.

int count_550s(char const *str)
{
    char const *p = str;
    int count;
    for (count = 0; ; ++count) {
        p = strstr(p, "550");
        if (!p)
            break;
        p++;
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

编辑:忘记"返回".

  • 您甚至可以通过将 `p = strstr(p, "550")` 作为条件放在 `for` 语句中来摆脱 `if`。 (2认同)

erg*_*sys 5

strstr()返回一个指向找到的字符串的指针,因此您可以使用它来进行第二次搜索(如果找到第一个搜索,则将其撞一个).