检查具有特定格式的char数组值

时间:2012-12-09 20:02:43

标签: c++ validation char

此部分代码检查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>。例如:e3E59。不接受e之后的任何字母,例如Ege56he77$等。

我设法使用上面的代码检查数组中的第一个字母是e还是E。然后我不知道如何检查无效格式,例如Ege56h。如果之前已经问过这个问题,请将我指向答案页面,因为我不确定应该使用哪个搜索关键字。请帮助我,并提前感谢。

1 个答案:

答案 0 :(得分:1)

尝试在第一个char之后使用substring并转换为int,如下所示:

   int myNum = atoi(emp_id.substr(1, emp_id.length()).c_str());

如果成功,那么好就会失败。