strtol

C语言 码拜 8年前 (2016-04-25) 994次浏览
unsigned long a = 0;
char b[] = “c0a801bb”;
a = strtol(b,NULL,16);
为嘛打印的值不对?怎么操作?
将16进制的8位字符串 转换成ip
解决方案

40

引用:
Quote: 引用:
#include<stdio.h>
int main()
{
    unsigned int   n1, n2, n3, n4;
    char b[] = "c0a801bb";
    sscanf(b, "%2x%2x%2x%2x", &n1, &n2, &n3, &n4);
    printf("%1d.%1d.%1d.%1d\n", n1, n2, n3, n4);
    return 0;
}

转换成对应的整数呢?
sscanf之后,本人再sprintf转换成192.168.1.187,然后再inet_aton去转换?

int main()
{
    char b[] = "c0a800bb";
    unsigned int   l;
    sscanf(b, "%8x", &l);
    printf("%x\n", l);
    return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明strtol
喜欢 (0)
[1034331897@qq.com]
分享 (0)