题目:输入一个字符串判断字符串是否为有效ip地址,
ip地址的形式为XXX.XXX.XXX.XXX。对于XXX表示为0-256的数,但是如果第一位是0而且整数不为0则是非法的,如01
不允许使用strip等函数,只允许使用strlen得到字符串长度
分析:输入字符串长度范围[7,15],以.分段必须能分成四段,每段必须是有效的能转换为整数的字符串,而且转换后整数的值要在[0,255]范围内,并且首位不能为0(除值0外,如00、01、002、013都是不合格的,合格的应该为0、1、2、13),此时可以采用判断字符串长度和整数位数是否相等的方式来进行判断。
代码:自己写了个代码,请大家指正:
#include "stdafx.h"
#include <iostream>
#include "stdlib.h"
using namespace std;
//1-3位字符串转换为255以内的整数,如果转换不了则
bool isValidIpSubInt(char* str);
//判断是否为有效ip地址,ip地址的形式为XXX.XXX.XXX.XXX
//对于XXX表示为0-256的数,但是如果第一位是0而且整数不为0则是非法的,如01
bool isValidIpAddress(char* str)
{
if(str == NULL)
return false;
int length = strlen(str);
if(length < 7 || length > 15) //最
return false;
int subNu