用c语言实现对字符串3333 2222 1111中的每一个ip进行校验
以下是使用C语言实现对字符串中每一个IP进行校验的代码示例:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int is_valid_ip(const char *ip) {
int num, dots = 0;
char *ptr;
if (ip == NULL)
return 0;
ptr = strtok((char*)ip, ".");
if (ptr == NULL)
return 0;
while (ptr) {
if (strlen(ptr) > 3)
return 0;
num = atoi(ptr);
if (num < 0 || num > 255)
return 0;
if (*ptr == '0' && strlen(ptr) > 1)
return 0;
ptr = strtok(NULL, ".");
dots++;
}
if (dots != 4)
return 0;
return 1;
}
int main() {
char ip_str[] = "3.3.3.3, 2.2.2.2, 1.1.1.1";
char *ip;
ip = strtok(ip_str, ", ");
while (ip) {
if (is_valid_ip(ip))
printf("%s is a valid IP address\n", ip);
else
printf("%s is not a valid IP address\n", ip);
ip = strtok(NULL, ", ");
}
return 0;
}
该程序首先定义了一个is_valid_ip函数用于验证IP地址的有效性。然后在main函数中,使用strtok函数将字符串分割成多个IP地址,并逐个进行校验。校验结果会在控制台输出
原文地址: http://www.cveoy.top/t/topic/iiRf 著作权归作者所有。请勿转载和采集!