如何 - 比较字符数组中的字符以确保用户没有输入数字



我正在为一个银行系统做一个类项目。其中一项任务是确保用户在输入姓名时不会输入数字字符,反之亦然,例如输入DOB和/或电话号码。

我使用一个char数组来获取名字和姓氏,但我想检查用户输入,看看他们是否意外输入了一个数字,例如:

  • Jason(接受(
  • j3son(拒绝(
cout << "*************************" << endl;
cout << "Please enter your first name: ";
cin.getline(nameFirst, 20);
cout << endl;

这将提示用户输入名字。我想把它发送到一个功能

bool checkName();

我假设有某种循环来检查数组的所有元素(nameFirst(,看看是否放置了数值。如果是,则返回一些内容,并使用该返回值来决定该使用是否放入了无效条目。

我被难住了。我找不到类似的东西。我所发现的一切都只针对int,但没有什么可以将intchar进行比较的。

#include <string>
#include <iostream>
#include <algorithm>
#include <cctype>
int main()
{
std::string nameFirst;
std::getline( std::cin, nameFirst );
// This will work with nameFirst being char[] as well,
// but you REALLY should use std::string...
if ( std::any_of( std::begin( nameFirst ), std::end( nameFirst ), [](unsigned char c){return std::isdigit(c);} ) )
{
std::cout << "I found a digit!n";
}
}

您可以循环输入并检查ASCII值。如果输入落在数字范围内,那么它就是一个数字。同样的策略也适用于字符。最好的方法是使用像isDigit这样的内置函数。https://www.programiz.com/c-programming/library-function/ctype.h/isdigit

相关内容

  • 没有找到相关文章

最新更新