首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电话号码和手机号码的验证

电话号码和手机号码的验证
EN

Stack Overflow用户
提问于 2010-06-24 16:55:06
回答 2查看 11.3K关注 0票数 1

我需要一个c,c++代码来验证电话号码(8位数字-从2开始)和手机号码(10位数字-从9开始)。

此外,它不应该允许输入任何空格,特殊字符,以及字符。

用户可以在此处输入电话号码或手机号码。

请在这方面提供帮助

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-24 17:04:41

代码如下:

代码语言:javascript
复制
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一起使用,以将整个代码编写为一行程序。

票数 3
EN

Stack Overflow用户

发布于 2015-04-10 13:54:57

代码语言:javascript
复制
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;
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3108454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档