本文主要是介绍C语言判断IPV4格式是否正确,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
因程序中需要判断IP格式,所以网上查询,使用sscanf可以实现类似正则表达式的效果,sscanf的使用比较复杂,用好了能实现很复杂的效果,现在仅整理判断IP格式的代码,以后有需要判断字符串格式了,再查询更多的用法,现在仅记录判断IP格式的代码。
#include <stdio.h>
#include <string.h>#define TRUE 1
#define FALSE 0int isIpV4Addr(const char *ipAddr);void main(void)
{char *ip_addr = "192.168.1.1";if(TRUE == isIpV4Addr(ip_addr)){printf("The ip[%s] is legal\n",ip_addr);}else{printf("The ip[%s] is not legal\n",ip_addr);}}int isIpV4Addr(const char *ipAddr)
{int ip_part_1 = 0;int ip_part_2 = 0;int ip_part_3 = 0;int ip_part_4 = 0;char end_char = 0;if((NULL == ipAddr) || (0 == strlen(ipAddr))){return FALSE;}if(4 == sscanf(ipAddr,"%d.%d.%d.%d%c",&ip_part_1,&ip_part_2,&ip_part_3,&ip_part_4,&end_char)){if((ip_part_1 >= 0) && (ip_part_1 <= 255) &&(ip_part_2 >= 0) && (ip_part_2 <= 255) &&(ip_part_3 >= 0) && (ip_part_3 <= 255) &&(ip_part_4 >= 0) && (ip_part_4 <= 255) ){return TRUE;}}return FALSE;
}
参考:http://bbs.csdn.net/topics/330230349
http://blog.chinaunix.net/uid-26284412-id-3189214.html
这篇关于C语言判断IPV4格式是否正确的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!