华为机试题:手机号码合法性判断
需积分: 0 139 浏览量
更新于2024-07-25
收藏 137KB DOC 举报
"华为机试题,涉及手机号码合理性判断的编程题目"
该题目是华为公司在2011年至2013年期间的机试题目,主要考察的是C++编程能力,特别是字符串处理和条件判断方面的技能。题目要求编写一个名为`verifyMsisdn`的函数,用于检查输入的手机号码字符串是否符合中国大陆手机号码的标准格式。
**知识点1:手机号码合理性判断**
1. **长度检查**:手机号码应为13位数字,不包括国家码86。如果长度不是13,则返回1。
2. **字符检查**:所有字符必须是数字。如果有非数字字符,返回2。
3. **国家码检查**:手机号码需以86开头。如果不是以86开头,返回3。在检查过程中,一旦发现不符合条件,立即返回相应的错误代码,无需继续检查后续条件。
**知识点2:C++函数设计**
- **函数声明**:`int verifyMsisdn(char* inMsisdn)`,函数接受一个指向字符数组的指针,表示输入的手机号码字符串,返回一个整数,表示手机号码的合法性状态。
- **返回值**:0表示手机号码合法;1表示长度不合法;2表示含有非数字字符;3表示国家码不是86。
**知识点3:C++字符串处理**
- 使用`strlen()`函数计算字符串的长度,判断长度是否为13。
- 使用循环遍历字符串中的每个字符,通过比较字符ASCII码判断是否为数字。
**知识点4:条件判断**
- 使用`if`语句进行条件判断,如`if(inMsisdn[i]<'0'||inMsisdn[i]>'9')`检查字符是否为数字。
- 使用嵌套的`if`语句检查国家码,确保前两位是'86'。
**知识点5:C++主函数`main()`**
- `main()`函数中,从用户输入读取手机号码,调用`verifyMsisdn`函数,并输出返回结果。
**示例代码分析**
提供的示例代码实现了上述功能。首先,通过`strlen`检查长度,然后遍历字符串检查字符是否为数字,最后检查前两位是否为'86'。在`main()`函数中,使用`cin`读取用户输入的手机号码,调用`verifyMsisdn`并输出结果。
注意,实际的代码实现可能需要更严谨的错误处理,例如考虑空字符串或者超出长度限制的输入,以及对输入进行适当的边界检查。此外,题目中的`main()`函数在实际应用中可能需要更复杂的用户交互或文件输入/输出。
122 浏览量
2019-03-27 上传
2023-05-23 上传
2023-10-05 上传
2023-08-17 上传
2023-09-17 上传
2023-08-02 上传
2023-05-01 上传
2023-11-09 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
u011901021
- 粉丝: 0
- 资源: 1
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解