正如题目所说,这是我的作业。我需要写一个函数,接收一个字符串的一个常数点。然后,我需要检查,以确保它包含10个数字,没有字母在其中。
这是我要做的一个例子,很明显有什么地方出错了。我的代码就停了。我的想法很简单,检查每个数组是否等于一个数字,如果不等于,就改变标志。与数字的个数相同。我做了一些测试,指针[0]未显示常规字符(或者假设是什么)。我被困在试图访问这个指针的单个字符而不是整个字符串。
注意:我不应该改变主函数,我应该只写被调用的函数。指针发送数字让函数验证。
int main(void)
{
char num1[11] = "2";
char num2[11] = "a123";
char num3[11] = "4162135678";
display(num1);
display(num2);
display(num3);
}
void display(const char* pointer)
{
int count=0, i, flag =1;
for (i = 0; pointer[i] != '\0'; i++)
{
if (pointer[i] == '0' || pointer[i] == '1' || pointer[i] == '2' || pointer[i] == '3' || pointer[i] == '4'
|| pointer[i] == '5' || pointer[i] == '6' || pointer[i] == '7' || pointer[i] == '8' || pointer[i] == '9')
{
if (i > 9)
{
flag = 0;
}
}
else
{
flag = 0;
}
}
if (flag)
{
printf("%s", pointer);
}
else
{
printf("Number not exactly 10 digits or not all are digits.");
}
}
1条答案
按热度按时间tag5nh1u1#
我也不确定sizeof(pointer)是否会返回字符串的大小,或者这只是一个c++的问题。