在C语言中,要判断一个IP地址是否合法,我们可以按照以下步骤进行: 定义合法IP地址的格式: 一个合法的IPv4地址由四个部分组成,每个部分是一个0到255之间的整数。 这四个部分由三个点(.)分隔。 编写函数: 定义一个函数,接收一个字符串参数作为待验证的IP地址。 分割IP地址: 使用字符串处理函数将IP地址按"....
intsection =0;//每一节的十进制值 intdot =0;//几个点分隔符 intlast = -1;//每一节中上一个字符 while(*ip) { if(*ip =='.') { dot++; if(dot >3) { return0; } if(section >=0&& section <=255) { section =0; }else{ return0; } }elseif(*ip >='0'&& *ip <='9') ...
方法1: 判断各个部分是否合法 intis_valid_ip(constchar*ip_str) { unsignedintn1,n2,n3,n4; if(sscanf(ip_str,"%u.%u.%u.%u",&n1,&n2,&n3,&n4) !=4) { return0; } if( (n1!=0)&&(n1<=255)&&(n2<=255)&&(n3<=255)&&(n4<=255) ) { char buf[64]; sprintf(buf,"%u.%u.%u.%u"...
1.输入一个IP地址字符串(支持16进制和10进制),判断ip是否合法,例如ip为“192.1.0.1”返回ture,ip为“266.266.266.1”,返回false。程序思路 1、要把ip地址分隔开,当然是用“.”分割。 2、ip地址有十进制和16进制,该如何兼容,先判断是否是16进制,如果是,则转换成整型,如果不是,直接转换为整型 3、再进行判断是...
C++判断IP地址字符串的合法性 最近改BUG,需要对一个IP地址字符串进行合法性检查,由于时间充裕,所以多折腾了下。 目前的解决方法可以归为以下三类: 1、自己动手写:以'.'将IP字符串分割成子串,再依次判断每个子串的每个字符是否都是数字,最后转换成值,判断是否在0~255的范围。
include <stdio.h>int checkIP(const char* p){ int n[4]; char c[4]; if (sscanf(p, "%d%c%d%c%d%c%d%c", &n[0], &c[0], &n[1], &c[1], &n[2], &c[2], &n[3], &c[3]) == 7) { int i; for(i = 0; i < 3; ++i) if...
(用用 inet_addr 有问题) 对 ip 地址进行判断, 可以用很多方法, 比如正则表达式和直接解析法。 但是, 并不是所有的朋友都会正则表达式, 直接解析法则繁琐易错。 下面, 我们换一个思路, 看看如何判断 ip 地址的合法性(其实这个程序有问题): #include <stdio.h> #include <winsock2.h> #pragma comment(lib,...
最后,根据点符号的个数和第一个非零数的判断,进一步确认输入是否为合法的IP地址。主函数main()通过gets(a)读取用户输入的IP地址,并通过调用函数y(a)进行判断。根据函数返回值的不同,主函数会输出相应的信息:"不是IP地址"或"是IP地址"。如需进一步帮助或有其他问题,随时联系我。
C语言检查ip是否合法 在工作当中我们经常会遇到这种问题:判断一个输入的字符串是否为合法的IP地址,下面是一个测试小程序: 1#include <stdio.h>2#include <string.h>3#include <stdlib.h>4#include <stdbool.h>56boolisVaildIp(constchar*ip)7{8intdots =0;/*字符.的个数*/9intsetions =0;/*ip每一...
判断一个ip地址合法性(基础c,不用库函数) #include <stdio.h>intjudge(char*strIp);intmain() {chara[20];while(1) { scanf("%s", a);if(0==judge(a)) { printf("this is a correct ip\n"); } } }intjudge(char*strIp) { if(NULL == strIp)...