mac_05185 2022-06-13 15:26 采纳率: 67.1%
浏览 178
已结题

C语言vs2019对string类型数据报错


//基于C语言的ip地址16进制整型与字符串相转换的简单实现方式
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

unsigned int ipv4_str_to_hex(char* str) {
    char ip1[4] = "";
    char ip2[4] = "";
    char ip3[4] = "";
    char ip4[4] = "";
    char* p = str;
    strcpy(ip1, strsep(&p, "."));
    strcpy(ip2, strsep(&p, "."));
    strcpy(ip3, strsep(&p, "."));
    strcpy(ip4, strsep(&p, "."));
    unsigned int ip = atoi(ip1);
    ip = ip * 256 + atoi(ip2);
    ip = ip * 256 + atoi(ip3);
    ip = ip * 256 + atoi(ip4);
    return ip;
}

void ipv4_hex_to_str(unsigned int iphex, char* ipstr) {
    sprintf(ipstr, "%u.%u.%u.%u", (iphex >> 24) & 0xff, (iphex >> 16) & 0xff, (iphex >> 8) & 0xff);
}

int main() {
    char ipstr[64] = "3131372E37342E3133362E33343B";
    unsigned int a;
    a = ipv4_str_to_hex(ipstr);
    printf("hex ip:0x%08x\n", a);
    char ipstr2[64] = "";
    ipv4_hex_to_str(a, ipstr2);
    printf("str ip is: %s\n", ipstr2);
    return 0;
}

这段代码在vs2019环境下编译报错,提示如下:
错误 LNK2019 无法解析的外部符号 strsep,函数 ipv4_str_to_hex 中引用了该符号 Project1 E:\ota_server_client_0606\Project1\Project1\server_main.obj 1

img

这是什么原因导致的?

  • 写回答

2条回答 默认 最新

  • 浪客 2022-06-13 15:55
    关注

    strsep是linux下的,vc没有。
    可以用库函数strpbrk写一个

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 创建了问题 6月13日

悬赏问题

  • ¥15 java根据模板,生成word文档,需要带目录
  • ¥15 广告联盟的兜底广告是什么意思
  • ¥15 如何证明高斯噪声的包络公式
  • ¥150 寻找王者荣耀开发作者,合作或者解答
  • ¥15 乳腺癌数据集 相关矩阵 特征选择
  • ¥15 我的游戏账号被盗取,请问我该怎么做
  • ¥15 通关usb3.0.push文件,导致usb频繁断连
  • ¥15 有没有能解决微信公众号,只能实时拍照,没有选择相册上传功能,我不懂任何技术,,有没有给我发个软件就能搞定的方法
  • ¥15 Pythontxt文本可视化
  • ¥15 如何基于Ryu环境下使用scapy包进行数据包构造