注册 登录
编程论坛 VC++/MFC

编写一个函数,查找任意一个字符串中是否包含手机号码,假设手机号码是1开头,11位

hanzhi 发布于 2013-06-25 17:28, 1044 次点击
如题,编写一个函数,查找任意一个字符串中是否包含手机号码,假设手机号码是1开头,11位,求编写思路,或者运行代码(自己练习用的,非作业)
5 回复
#2
yuccn2013-06-25 19:48
每11位做一个判断
1 是否1开头
2 是否这11个字符都是数字

bool is_mobile_number(char *ptr)
{
    if (strlen(ptr) != 11) return false;

    if (ptr[0] != '1') return false;
  
    for (int i = 0; i < 11;i++)
    {
        if (ptr[i] < '0' || ptr[i] > '9') return false;
    }
   
    return false;
}

bool include_mobile_number(char *ptr)
{
    int len = strlen(ptr);
    char buff[12] = { 0 }
    for (int i = 0; i <len - 11;i++)
    {
        memcpy(buff, 11, buff);
        if (is_mobile_number(buff))
        {
            return true;
        }
    }
    return true;
}
#3
hanzhi2013-06-26 15:49
多谢了,现在试试,看看能不能运行出来
#4
hanzhi2013-06-26 16:09
memcpy(buff, 11, buff); 这条语句是干什么用的呀?
第二个和第三个参数(11和buff)有问题
#5
azzbcc2013-06-26 20:31
memcpy(buff, &ptr[i], 11)
#6
yuccn2013-06-26 22:18
回复 5楼 azzbcc
哦哦,搞错参数顺序了,哈哈,不好意思,没有编译环境测试,乱来的
1