手機號碼合法性判斷

來源:互聯網
上載者:User

標籤:標準庫函數

問題描述:
我國大陸電訊廠商的手機號碼標準格式為:國家碼+手機號碼,例如:8613912345678。特點如下:
1、 長度13位;
2、 以86的國家碼打頭;
3、 手機號碼的每一位都是數字。

請實現手機號碼合法性判斷的函數(註:考生無需關注手機號碼的真實性,也就是說諸如86123123456789這樣的手機號碼,我們也認為是合法的),要求:
1) 如果手機號碼合法,返回0;
2) 如果手機號碼長度不合法,返回1
3) 如果手機號碼中包含非數位字元,返回2;
4) 如果手機號碼不是以86打頭的,返回3;
【注】除成功的情況外,以上其他合法性判斷的優先順序依次降低。也就是說,如果判斷出長度不合法,直接返回1即可,不需要再做其他合法性判斷。

要求實現函數:
int verifyMsisdn(char* inMsisdn)
【輸入】 char* inMsisdn,表示輸入的手機號碼字串。
【輸出】 無
【返回】 判斷的結果,類型為int。

樣本
輸入: inMsisdn =“869123456789“
輸出: 無
返回: 1
輸入: inMsisdn =“88139123456789“
輸出: 無
返回: 3
輸入: inMsisdn =“86139123456789“
輸出: 無
返回: 0

代碼如下:自寫的

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>//含有isdigit庫函數int judge_phonenum(char * str){    int len=strlen(str);    if(len<13)  return 1;//第一判斷長度    else    {//第二判斷非數字字元        for(int i=0;i<len;i++)        {            int flag=isdigit(str[i]);            if(flag==0) return 2;        }        //第三判斷開頭是否為86        if(str[0]==‘8‘&&str[1]==‘6‘) return 0;        else return 3;    }}int main(){    char str[100];    gets(str);    int result=judge_phonenum(str);    printf("%d",result);}

引用了別人的代碼

#include <stdio.h>#include <string.h>int verifyMsisdn(char* inMsisdn){    int i,flag1 = 0,flag2 = 0,flag3 = 1;    if(strlen(inMsisdn) == 13)        flag1 = 1;    if(inMsisdn[0] == ‘8‘ && inMsisdn[1] == ‘6‘)        flag2 = 1;    for(i=0 ; i< strlen(inMsisdn);i++)        if(!(inMsisdn[i]>=‘0‘ && inMsisdn[i]<= ‘9‘))            flag3 = 0;    if(flag1 && flag2 && flag3)        return 0;    else if(!flag1)        return 1;    else if(!flag3)        return 2;    else if(!flag2)        return 3;   }int main(){    char inMsisdn[20]={0};    int return_num;    printf("please input the mobile num:\n");    scanf("%s",inMsisdn);    return_num = verifyMsisdn(inMsisdn);    printf("the return num is:%d",return_num);    system("pause");    return 0;}

總結:isdigit庫函數
原型:extern int isdigit(char c);
功能:判斷字元c是否為數字
說明:當c為數字0-9時,返回非零值,否則返回零。
附加說明 此為宏定義,非真正函數。

手機號碼合法性判斷

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.