IP地址是否合法
STATUS ip_valid_check(const char* v_p_Str)
{
int i;
int tmp;
char* p = NULL;
if(strlen(v_p_Str) > 15)
{
return ERROR;
}
p = (char*)v_p_Str;
tmp = atoi(p);
if(tmp > 255 || tmp < 0)
{
return ERROR;
}
for(i = 0; i < 3; i++)
{
if(NULL == (p = strchr(p, '.')))
{
return ERROR;
}
p++;
tmp = atoi(p);
if(tmp > 255 || tmp < 0)
{
return ERROR;
}
}
return OK;
}
简单的实现atoi函数源代码:
int my_atoi(const char *str)
{
int result = 0;
int signal = 1; /* 默认为正数 */
if((*str>='0'&&*str<='9')||*str=='-'||*str=='+')
{
if(*str=='-'||*str=='+')
{
if(*str=='-')
signal = -1; /* 输入负数 */
str++;
}
}
else
return 0;
/* 开始转换 */
while(*str>='0'&&*str<='9')
result = result*10+(*str++ -'0');
return signal*result;
}