1.总的来说,需要两个步骤:
- 将ip地址以“.”进行分割,将分割的字符串地址存储到数组指针char *p[4]中。
- 将char *p[4]中的指针指向的字符串转换为数字并判断是否合法
#include<stdio.h>
#include<string.h>
int trans_num(char *data){
int temp=0;
// 1234: 1=1 12=1*10+2 123=12*10+3 1234=123*10+4
while(*data!='\0'){
temp = temp*10+(*data-'0');
data++;
}
return temp;
}
int main(){
// 思路:1.利用strtok函数获取分割后的字符串地址,用数组指针p存储
char* ip;
char* p[4];
int data[4];
int i=0;
printf("请输入ipv4地址:");
scanf("%s",ip);
p[0] = strtok(ip,".");
while(p[i]){
i++;
p[i] = strtok(NULL,".");
}
for(i=0;i<4;i++){
if(trans_num(p[i])<=255&&trans_num(p[i])>=0)
continue;
else
break;
}
if(i==4){
printf("ip合法");
}else{
printf("ip不合法");
}
}
结果: