在C中按字母顺序比较字符串

 mobiledu2502916457 发布于 2023-02-13 16:38

我正在编写将传递给qsort的比较函数,并且我无法按字母顺序对字符串进行排序.

typedef struct{
    char title[30];
    //other irrelevant variables
} Album;

compare(Album * l, Album * r){

    if(l->title > r->title){
         return -1;
    }
    if(l->title == r->title){
        return 0;
    }
    else{
        return 1;
    }
}

qsort(albums, num_albums, sizeof(Album), compare);

我知道这可能是错的,但我不确定如何按字母顺序比较char指针.有人能帮这个老家伙吗?

1 个回答
  • 裸数组名称的计算结果为第一个数组元素的地址.您需要比较字符串内容,而不是字符串地址.碰巧有一个很好的功能 - strcmp:

    compare(Album * l, Album * r) {
        return strcmp(l->title, r->title);
    }
    

    2023-02-13 16:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有