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

时间:2013-09-27 21:51:11

标签: c++ function

我有一个函数(下面)检查用户的无效字符的名字,它工作正常。

    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个字符。 我已经尝试了几次,并且可以让程序运行第一个函数,但如果我放入另一个函数来检查名称长度,它似乎跳过它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是一个稍微调整过的方法:

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;
}

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