c++ - 检查具有特定格式的字符数组值

标签 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 之后的任何字母不被接受,例如 Eg , e56h , e77$等等等等

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

最佳答案

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

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

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

关于c++ - 检查具有特定格式的字符数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791222/

相关文章:

c++ - 如何使用 `std::function` 作为函数参数创建可变参数模板函数?

c++ - 在 C++ 中什么时候需要 'int'?

php 使用 preg_match 验证字符串

java - 我如何告诉用户他们之前输入过带有indexOf的字母? java

c - 警告 : format '%c' expects type 'int' , 但参数 2 的类型为 'char *'

c++ - 将非静态成员函数作为函数的参数传递

c++ - WINAPI ReadProcessMemory 总是相同的地址

javascript - 使用 Jquery Validate 插件在文本字段上动态设置最小值

html - 删除 FireFox/Internet Explorer 11 上 HTML5 验证的默认红色边框

c++ - 字符到整数 - C++