【发布时间】:2016-07-30 06:54:23
【问题描述】:
#include <iostream>
#include <string>
using namespace std;
bool custNum(char [], int);
int main()
{
const int size = 8;
char custmor[size];
cout << "Enter a customer number in the form ";
cout << "LLLNNNN\n";
cout << "(LLL = letters and NNNN = numbers): ";
cin.getline(custmor, size);
if(custNum(custmor, size))
cout<<"That's a valid id number"<<endl;
else
cout<<"That's not a valid id number"<<endl;
return 0;
}
bool custNum(char custNum[], int size)
{
int count;
for(count = 0; count<3; count++)
{
if(!isalpha(custNum[count]))
return false;
}
for(count = 3; count <size - 1; count++) //3<7 , 4
{
if(!isdigit(custNum[count]))
return false;
}
return true;
}
所以我想循环一个由 3 个字母和 4 个数字组成的字符数组,比如 ABC1234,但是我没有得到第二个 for 循环的条件(大小 - 1)。每次测试条件时它是如何工作的?
【问题讨论】:
-
我在任何地方都看不到大小变量声明
-
你应该使用“break;”而不是“返回 false”
-
我想他是在问为什么他的第二个循环没有执行?
-
数组中实际有多少个元素,
size是如何计算的?请注意,像"ABC1234"这样的字符串文字使用8字符表示 - 字母和数字,加上结尾的char值为零 ('\0') -
我无法理解你真正的要求。