C++ 检查用户的名字不要太短

C++ Check user's first name is not too short

本文关键字:检查 用户 C++      更新时间:2023-10-16

我有一个函数(如下)可以检查用户的名字是否有无效字符,并且工作正常。

    while(run)
{
    size_t positionFirstName = userFirstName.find_first_of(invalidCharacter, 0,      sizeof(invalidCharacter));
    if (positionFirstName != string::npos) 
    {
        cout << "Please only use letters. Please re-enter your first name." << endl;
        cin >> userFirstName;

    }
    else
    {
        run = false;
    }
}

我还想检查用户的名字是否不短于 3 个字符。我已经尝试了几次,可以让程序运行第一个函数,但是如果我放入另一个函数来检查名称长度,它似乎会跳过它。有什么想法吗?

这里有一个稍微调整的方法:

cout << "Please enter your first name." << endl;
while( cin >> userFirstName )
{
    size_t positionFirstName = userFirstName.find_first_of(invalidCharacter, 0, sizeof(invalidCharacter));
    if (positionFirstName != string::npos) 
    {
        cout << "Please only use letters.";
    }
    else if( userFirstName.size() < 3 )
    {
        cout << "Name must be at least 3 characters long."
    }
    else {
        break;
    }
    cout << "  Please re-enter your first name." << endl;
}

请注意,我避免了重复,但只打印错误并在一个地方处理输入。