所以我在C语言中遇到int
和string
的问题。
我的任务是编写一个函数,该函数将在string
中输出错误率。
例如,如果字符串为"aaabbbcccdxm"
,则输出应为"1/12"
。
“错误”是指从n到z的任何字母,而从a到m的任何字母都是“好”。
我以为可以通过使用for
循环检查字符串中的每个字母,然后使用if
为int error
添加值(这将是错误字母的数量)来做到这一点,但是我不知道如何将“ int error”值转换为具有输出error value/string dimension
的字符串。有什么想法吗?
答案 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;
}