struct - 使用 qsort 对 C 字符串进行排序

2024-04-15

我正在对一堆 IP 进行排序,但由于某种原因,它们的顺序错误。我不太确定问题出在哪里。

66.249.71.3      
190.148.164.245  
207.46.232.182   
190.148.164.245  
190.148.164.245  
202.154.114.253
190.148.164.245  
190.148.164.245  
66.249.71.3      
190.148.164.245  
202.154.114.253

这就是我对它们进行排序的方式。

typedef struct {
    char *ip;
} mystruct;

/* qsort */
int struct_cmp(const void *a, const void *b)
{
    mystruct *ia = (mystruct *)a;
    mystruct *ib = (mystruct *)b;
    return strcmp(ia->ip, ib->ip);
} 
...
qsort(a_struct, 11, sizeof(mystruct*), struct_cmp);
for(..){
    printf("%s\n",a_struct[i]->ip);
}

任何帮助将不胜感激。谢谢


你有一个指向的指针数组mystructs, but qsort使用这个比较函数将期望一个简单的数组mystructs。对数组进行排序mystruct*您需要向比较函数添加另一个间接级别:

int struct_cmp(const void *a, const void *b) {
    mystruct *ia = *(mystruct **)a;
    mystruct *ib = *(mystruct **)b;
    return strcmp(ia->ip, ib->ip);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

struct - 使用 qsort 对 C 字符串进行排序 的相关文章

随机推荐

  • Inno Setup 卸载进度条更改事件

    有没有类似的事件 函数CurInstallProgressChanged对于进度条CurProgress and MaxProgressInno Setup 中卸载表单中的值 对此没有本机支持 您可以做的是设置一个计时器并观察时间的变化Un
  • 如何在参数 $_GET 中使用变量?示例:($_GET[$my_var])

    我正在开发一个WordPress插件 GET的参数根据用户的偏好通过Wordpress管理面板记录在数据库中 以下验证必须通过 GET 进行 这是函数 db url get option my get url returns the val
  • 在Python中获取浮点数的“位”? [复制]

    这个问题在这里已经有答案了 我正在寻找 Java 的 Python 等价物Float floatToBits 我找到了这个Python 获取和操作 作为整数 浮点数的位模式 https stackoverflow com questions
  • Java OpenCV - 从 knnMatch 中提取良好的匹配

    我正在尝试实现一个非常简单的程序来查找两个图像之间的相似之处 我正在使用 ORB 特征检测器和图像描述符来完成此任务 并且我正在使用以下方法识别匹配knnMatch FeatureDetector detector FeatureDetec
  • PostgreSQL 排序时除以零

    我需要在 postgres 中执行这个查询 但我无法摆脱这个错误 ERROR division by zero SQL state 22012 这是查询 select id rates sum rates count from tbl no
  • 悬停时隐藏 div 的子元素

    有没有办法让这项工作发挥作用 我想将鼠标悬停在外部div并隐藏子元素而不使用 javascript 这样的事情可能吗 fullwrap nth child 1 hover display none 要隐藏子元素 您需要这样的结构 paren
  • Mac 上出现“SSL: CERTIFICATE_VERIFY_FAILED”错误

    我本来想解决 SSL CERTIFICATE VERIFY FAILED 问题 因为我使用 mac 和 python 3 很多人说我应该运行 Applications Python 3 6 Install Certificates comm
  • 使用 PHP 格式化 API JSON 响应

    我有一个 api 我想使用 php 解析其中的数据 这就是回应 success true data medicineId 12 medicineName Abacavir medicineId 10 medicineName Alclome
  • python setuptools setup.cfg:在构建目录中包含主包和子包

    我想使用以下命令为我的 python 软件创建一个 pip 包安装程序 cfg https setuptools pypa io en latest userguide declarative config html文件 我的程序目前的结构
  • 如何在Delphi 10.2中使用ToolsAPI获取当前项目的版本号

    在 Delphi 2007 中 我可以使用以下 ToolsAPI 调用轻松获取当前项目的版本信息 procedure Test var ProjectOptions IOTAProjectOptions Project IOTAProjec
  • 我无法在 Netbeans 7.0 上创建 Rails 应用程序。挂在25%处

    我的开发环境 是 Win7旗舰版 红宝石 1 9 2p180 铁轨3 0 9 宝石1 8 5 sqlite3 和 mysql2 gems 已安装 我的IDE是netbeans 7 0 用于 netbeans 7 0 的 ruby 插件已安装
  • 在移动 Safari 中检测 iOS5(首选 JavaScript)

    iOS5 中引入的新固定定位损坏了我的网络应用程序 我需要一种方法来检测 iOS5 用户 如何检测iOS5 浏览器代理字符串是什么 首选 JavaScript 谢谢 从SO问题来看 iOS 5 用户代理字符串是什么 https stacko
  • 将 int 转换为 size_t

    当我传递一个时 我想知道 clang 编译器的以下警告integer to an std initializer list lt size t gt non constant expression cannot be narrowed fr
  • 使用boilerpipe提取非英文文章

    我正在尝试使用锅炉管 http code google com p boilerpipe java 库 用于从一组网站中提取新闻文章 它非常适合英文文本 但对于带有特殊字符的文本 例如带有重音符号的单词 hist ria 无法正确提取这些特
  • Firebase 按顺序获取数据

    我正在使用 Firebase 直到最近才按字母顺序获取数据时没有遇到任何问题 我从来没有使用过查询 我总是只使用数据快照并对其进行一一排序 最近 数据并不总是按字母顺序排列snapVal 如何才能获得按字母顺序排序的数据 snapVal 就
  • commonModalDialogClose(SP.UI.DialogResult.OK, someValue) 抛出错误

    在 SharePoint 2010 中 我有一个可视化 Web 部件 它使用SP UI ModalDialog showModalDialog 该对话框显示正常 但是当我尝试使用关闭对话框时 SP UI ModalDialog common
  • USBInterfaceOpen总是报kIOReturnExclusiveAccess错误

    最近我遇到了这个问题 很头疼 我已经在这个问题上花了一个星期了 但仍然失败 希望您能帮我把这块石头踢开 非常感谢 我的问题 我们公司为iPhone生产USB存储设备 实际上这个存储设备中有一个SDCard 现在 我们想要开发一个 Mac 应
  • li 菜单需要“selected”类

    当用户单击菜单选项卡时 我希望它保持选中状态 并带有白色按钮 这是我的尝试 但它不起作用 如果您单击主页按钮 它不会保持白色 html ul li a href span HOME span a li li a href en us abo
  • 带 redux 的进度条

    我的 React Redux 应用程序中有一个后台上传过程 更新非常频繁 我的减速器看起来像这样 export default function progressReducer state initialState action switc
  • struct - 使用 qsort 对 C 字符串进行排序

    我正在对一堆 IP 进行排序 但由于某种原因 它们的顺序错误 我不太确定问题出在哪里 66 249 71 3 190 148 164 245 207 46 232 182 190 148 164 245 190 148 164 245 20