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;
- }