C语言如何把192.168.1.11变成192.168.001.011
C语言怎么把192.168.1.11变成192.168.001.011?
总的功能是这样的
比如说我有A,B,C三个ip地址。然后都用Inet_addr转换。然后A的值只要大于B小于C。能不能代表A在B C区间中?
本来我是想用inet_addr来实现的。然后现在发现我跑的时候124.239.208.81 还是落在192.168.131.11至244.244.244.244中
后来就找到了memcmp这个函数。但是是这个函数的话就要求能把192.168.1.11变成192.168.001.011这样的话才能正确比较
求解。对字符串指针真的很不懂
------解决思路----------------------
作为一个C程序员,对
scanf,sscanf,fscanf
printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。
总的功能是这样的
比如说我有A,B,C三个ip地址。然后都用Inet_addr转换。然后A的值只要大于B小于C。能不能代表A在B C区间中?
本来我是想用inet_addr来实现的。然后现在发现我跑的时候124.239.208.81 还是落在192.168.131.11至244.244.244.244中
后来就找到了memcmp这个函数。但是是这个函数的话就要求能把192.168.1.11变成192.168.001.011这样的话才能正确比较
求解。对字符串指针真的很不懂
------解决思路----------------------
作为一个C程序员,对
scanf,sscanf,fscanf
printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。
//把192.168.1.11变成192.168.001.011
#include <stdio.h>
char s[20]="192.168.1.11";
char t[20];
int a,b,c,d;
int main() {
sscanf(s,"%d.%d.%d.%d",&a,&b,&c,&d);
sprintf(t,"%03d.%03d.%03d.%03d",a,b,c,d);
printf("%s\n",t);
return 0;
}
//192.168.001.011
//