2014华为机试-判断输入的字符串是不是一个有效的IP地址
2014-11-07 02:48
513 查看
判断输入的字符串是不是一个有效的IP地址
请实现如下接口
bool isIPAddressValid(const char* pszIPAddr)
输入:pszIPAddr 字符串
输出:true 有效的IP地址,false,无效的IP地址
约束条件:
输入IP为XXX.XXX.XXX.XXX格式
字符串两端含有空格认为是合法IP
字符串中间含有空格认为是不合法IP
类似于 01.1.1.1, 1.02.3.4 IP子段以0开头为不合法IP
子段为单个0 认为是合法IP,0.0.0.0也算合法IP
请实现如下接口
bool isIPAddressValid(const char* pszIPAddr)
输入:pszIPAddr 字符串
输出:true 有效的IP地址,false,无效的IP地址
约束条件:
输入IP为XXX.XXX.XXX.XXX格式
字符串两端含有空格认为是合法IP
字符串中间含有空格认为是不合法IP
类似于 01.1.1.1, 1.02.3.4 IP子段以0开头为不合法IP
子段为单个0 认为是合法IP,0.0.0.0也算合法IP
bool isIPAddressValid(const char *pszIPAddr) { char temp[5] = "\0"; int i = 0, j; int count = 0; int number; if (NULL == pszIPAddr) return false; while (*pszIPAddr != '\0') { if (count == 0 && i == 0 && *pszIPAddr == ' ') { pszIPAddr++; continue; } if (count < 3) { if (*pszIPAddr <= '9' && *pszIPAddr >= '0') { temp[i++] = *pszIPAddr; if (i > 3) return false; } else { if (*pszIPAddr == '.') { if (i == 0) return false; temp[i] = '\0'; number = 0; if (temp[0] == '0' && i > 1) return false; for (j = 0; j < i; j++) { number = 10 * number + temp[j] - '0'; } if (number > 255) return false; count++; i = 0; } else return false; } } else { i = 0; while (count == 3) { if (*pszIPAddr <= '9' && *pszIPAddr >= '0') { temp[i++] = *pszIPAddr; if (i > 3) return false; } else { if (i == 0) return false; while (*pszIPAddr != '\0') { if (*pszIPAddr == ' ') pszIPAddr++; else return false; } if (temp[0] == '0' && i > 1) return false; temp[i] = '\0'; number = 0; for (j = 0; j < i; j++) { number = 10 * number + temp[j] - '0'; } if (number > 255) return false; else return true; } pszIPAddr++; } } pszIPAddr++; } return false; }
相关文章推荐
- 华为oj-判断输入的字符串是不是一个有效的IP地址
- 判断输入的字符串是不是一个有效的IP地址
- 面试题整理17 输入一个字符串判断一个字符串是否是有效ip地址
- 面试题整理17 输入一个字符串判断一个字符串是否是有效ip地址
- 判断一个字符串是否为有效ip地址
- 华为机试——通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串
- JAVA中 怎么判断输入的字符串是不是一个数字
- 随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数
- 判断一个字符串是不是ip地址
- 判断某个字符串是不是一个合法的IP地址
- 华为招聘机试整理9:输入一个字符串,用指针求出字符串的长度
- 华为招聘机试整理9:输入一个字符串,用指针求出字符串的长度
- 用shell判断一个字符串是不是全为数字
- 判断一个字符串是不是纯数字字符串
- 自己写的一个判定字符串是不是IP地址的方法(= =!漏洞一堆,有待完善。。。)
- Delphi 判断字符串是不是有效的时间
- 06年华中科大机试第三题(输入一个ip地址串,判断是否合法)
- 如何判断一个网络路径是不是有效路径
- 每天学习一算法系列(9) (输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果)
- Asp.net 判断输入的字符串是不是数字