我需要一个c,c++代码来验证电话号码(8位数字-从2开始)和手机号码(10位数字-从9开始)。
此外,它不应该允许输入任何空格,特殊字符,以及字符。
用户可以在此处输入电话号码或手机号码。
请在这方面提供帮助
谢谢,
发布于 2010-06-24 17:04:41
代码如下:
bool is_valid_number(const std::string& number)
{
static const std::string AllowedChars = "0123456789";
for(auto numberChar = number.begin();
numberChar != number.end(); ++numberChar)
if(AllowedChars.end() == std::find(
AllowedChars.begin(), AllowedChars.end(), *numberChar))
{
return false;
}
return true;
}
// client code
std::string number = "091283019823";
bool isMobileNumber = is_valid_number(number)
&& number.size() == 10
&& number[0] == '9';
bool isLandLineNumber = false; // left as an exercise to the reader ;)函数is_valid_number可以改进为在迭代器而不是字符串上工作,或者编写为单个字符上的函数器,并与std::find_if一起使用,以将整个代码编写为一行程序。
发布于 2015-04-10 13:54:57
int main()
{
double mobileNumber;
mo:
printf("\n Enter Mobile No : ");
while ( !scanf("%lf",&mobileNumber) )
{
fflush(stdin);
printf("\n Invalid Number :\n\n ");
printf("Enter Mobile No Again : ");
}
if (mobileNumber < 1000000000 || mobileNumber > 9999999999)
{
printf("\n Please enter only 10 digits... \n");
goto mo;
}
}https://stackoverflow.com/questions/3108454
复制相似问题