试图解决一位讲师给我的问题,但我无法理解如何正确调用它。
我得到了一个链接到测试驱动程序的函数,我的目标是使用 cstring 库通过此函数在随机生成的字符串对象中查找 0-9 范围内的任何数字。
int countDigits(char * const line) {return 0;}
到目前为止,这是我所拥有的:
int countDigits(char * const line)
{
int i, index;
index = -1;
found = false;
i = 0;
while (i < *line && !found)
{
if (*line > 0 && *line < 9)
index++;
}
return 0;
}
我的代码不是很好,目前只会导致无限循环和失败,非常感谢任何帮助。
最佳答案
嗯,你的函数有几个问题。
- 你想让它返回位数,但无论如何它都返回0
-
found
永远不会设置为 false 以外的任何值,因此禁止 while 循环停止 - 还有比较
i<*line
对我来说没有多大意义,我想你想检查行尾。也许你会想寻找一个空终止符“\0”(这里再次i
永远不会设置为除 0 之外的任何其他值) - 而且,如果你想比较单个字符,你应该查找 ASCII code您要比较的字符的数量(数字 0-9 不等于代码 0-9)
希望这是改进您的功能的开始。
关于c++ - 使用 cctype 库搜索函数以查找范围内数字的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414560/