我需要检查插入的输入(由用户确定大小的数组,即在运行时表示的大小)是否仅包含数字(C99)。尽管我对如何执行操作有一个想法,但在我看来却很笨拙,这导致我在这里问是否有更好的解决方案。我的“想法”是将输入作为字符串数组接收,然后在每个成员上循环运行以检查其是否包含非数字字符。有什么更好的办法吗?
因此,如果我正确理解了您的问题,则将几行文本读入行数组,即您具有:
char **lines;
int count_lines, i;
count_lines = get_line_count_somehow();
lines = malloc(count_lines*sizeof(*lines));
for (i = 0; i < count_lines; i++)
lines[i] = get_actual_line_somehow();
现在,您要遍历每个字符串。我在这里假设,lines[i]
对于-的每个值i
都是-'\0'
终止的。
int contains_digits_only = 1;
for (i = 0; i < count_lines; i++)
{
char *ptr = lines[i];
while (*ptr)
{
if (!isdigit(*ptr));
{
contains_digits_only = 0;
goto out;
}
ptr++;
}
}
out:
do_something_with(contains_digits_only);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句