检查用户输入是不是是字母

Posted

技术标签:

【中文标题】检查用户输入是不是是字母【英文标题】:Checking if user input is alphabetic检查用户输入是否是字母 【发布时间】:2016-06-01 11:44:27 【问题描述】:

我不知道如何检查用户的输入是否是字母。我希望程序:

    读取用户输入 检查是否是字母 再次输出名称

我尝试使用isdigitisalpha,但无法正常工作。

//checking if name is valid and not a number
int nameCheck(char enteredName)

    //if the name is alphabetic
        /* return and output it */

    //else
        /* let the user enter it again */


//user enters the name
int nameEntering()

    cout << "please enter your Name.\n";
    char enteredName;
    cin >> enteredName;
    nameCheck(enteredName);
    return 0;


int main()

    char enteredName;
    enteredName = nameEntering();
    cout << "Have a nice day " << enteredName << "!\n";
    return 0;

这是我的旧解决方案,根本不起作用。我在另一个网站上找到了它并将其用作“模板”。

int nameCheck(char enteredName)

    int i = 0;
    char str[] = enteredName;
    while (str[i])
        
            if (isalpha(str[i])) printf("character %c is alphabetic\n",     str[i]);

            else
            cout << "Enter your name again without using numbers or other     special characters, please!\n";
            nameEntering();
            i++;
        
    return enteredName;

【问题讨论】:

您需要对“名称输入”部分进行循环,具体取决于 nameCheck(使用返回类型 bool)函数的输出。在伪代码中类似于while(!nameCheck(name)) name = promptName() 名称是collection of words。因此,请使用std::string 而不是char。此外,如果您希望在名称中使用 space,请使用 getline() 对不起,我说过我是新来的,第一次积极使用这个网站。 我将旧解决方案添加到帖子@Andrew 【参考方案1】:

我找到了解决办法。

//user enters the name
void nameEntering()

    cout << "please enter your Name.\n";
    string enteredName;
    cin >> enteredName;

//checking if name is valid and not a number
    if (find_if(enteredName.begin(), enteredName.end(), isdigit) !=enteredName.end())
    
        system("cls");
        cout << "please don't enter numbers or other special characters.\n";
        cout << "\n";
        nameEntering();
    
    //if valid it outputs name
    else
    
        coutput(enteredName);
    

【讨论】:

以上是关于检查用户输入是不是是字母的主要内容,如果未能解决你的问题,请参考以下文章

用于检查 char 数组是不是包含 Java 中用户给定字母的 if 语句

检查用户名是不是有来自名称的 4 个连续字母 - javascript

检查密码,验证,然后再次循环

检查 TextBox 输入是不是为十进制数 - C#

如何告诉用户他们之前使用 indexOf 输入了一个字母? JAVA

检查输入是数字还是字母javascript