0

此部分代码检查 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都不接受,例如Eg,e56he77$

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

4

1 回答 1

1

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

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

如果成功则好,否则失败。

于 2012-12-09T20:10:02.020 回答