此部分代码检查 char 数组中的特定格式。
char emp_id[10];
cout<<"Employee ID\t\t: ";
while(cin.getline(emp_id,10)) {
if (emp_id[0] == 'e' || emp_id[0] == 'E'){
break;
}
std::cout << "Input error. Invalid employee ID format." << std::endl;
cout<<"\nEmployee ID\t\t: ";
}
接受的格式是 e<employee ID number>
.例如:e3
或 E59
. e
之后的任何字母不被接受,例如 Eg
, e56h
, e77$
等等等等
我设法检查数组中的第一个字母是否为 e
或 E
用上面的代码。然后我不知道如何检查无效格式,例如 Eg
或 e56h
.如果之前有人问过这个问题,请将我指向答案页面,因为我不确定应该使用什么搜索关键字。请帮助我并提前致谢。
最佳答案
尝试在第一个 char 之后使用子字符串并转换为 int,如下所示:
int myNum = atoi(emp_id.substr(1, emp_id.length()).c_str());
如果成功则很好,否则失败。
关于c++ - 检查具有特定格式的字符数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791222/