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

标签 c string

如何计算 C 字符串中 / 的出现次数?

我能做到:

int countSlash(char str[])
{
    int count = 0, k = 0;
    while (str[k] != '\0')
    {
          if (str[k] == '/')
              count++;
          k++;
    }
    return count;
}

但这不是一种优雅的方式;关于如何改进它有什么建议吗?

最佳答案

strchr会做一个更小的循环:

ptr = str;

while ((ptr = strchr(ptr '/')) != NULL)
    count++, ptr++;

我应该补充一点,我不赞成为了简洁而简洁,在所有其他条件相同的情况下,我将始终选择最清晰 的表达方式。我确实发现 strchr 循环更优雅,但问题中的原始实现很清楚并且存在于一个函数中,所以我不喜欢其中一个,所以只要他们都通过了单元测试。

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

相关文章:

c - C 中的结构名称标准

c# - 在 C# 中将 & 替换为 &

c# - ??合并空字符串?

在 C 中将字符串切成 2 个字符字符串的一部分,然后转换为十六进制格式(char * 到 unsigned char)

c - 递归遍历目录时 C 中的 gmtime 不一致

c - Emacs 格式化函数声明的规则

java - 如何将字符添加到特定索引中的字符串?

C++链表不显示String类型变量

c - 如何在 makefile 中包含项目目录之外的 header

c - STM32 硬故障免费