在C

时间:2019-01-25 11:14:19

标签: c string int

所以我在C语言中遇到intstring的问题。

我的任务是编写一个函数,该函数将在string中输出错误率。 例如,如果字符串为"aaabbbcccdxm",则输出应为"1/12"

“错误”是指从n到z的任何字母,而从a到m的任何字母都是“好”。 我以为可以通过使用for循环检查字符串中的每个字母,然后使用ifint error添加值(这将是错误字母的数量)来做到这一点,但是我不知道如何将“ int error”值转换为具有输出error value/string dimension的字符串。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用printf格式化输出。我建议在Linux机器上或从Google阅读man 3 printf

这是这样一个程序的样子:

#include <stdio.h>
#include <string.h>

int main()
{

  const char *  input_str = "aaabbbcccdxm";
  int           size = strlen(input_str);
  int           error = 0;

  for (int i = 0; i < size; ++i)
    {
      if (input_str[i] >= 'n')
        error++;
    }

  printf("%d/%d\n", error, size);

  return 0;
}

答案 1 :(得分:1)

size_t errors(const char *str, const char *legal)
{
    size_t errcnt = 0;

    while(str && *str)
    {
        errcnt += !strchr(legal, *str++);
    }
    return errcnt;
}

int main()
{
    char *str = "aaabbbcccdxm";
    printf("%zu/%zu\n", errors(str,"abcdefghijklm"), strlen(str));

    return 0;
}