题解 | #字符串分隔#

字符串排序

http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

充分利用库函数

#include <stdio.h>
#include <string.h>

int cmp(const void **str1, const void **str2)
{
    return strcmp((char *)*str1, (char *)*str2);
}

int main()
{
    int num;
    scanf("%d", &num);
    char **str = (char **)malloc(sizeof(char *) * num); // 二级指针,用于指向一级指针各个字符串
    char *p = (char *)malloc(sizeof(char) * num * 101); // 用于存放所有字符串,考虑最后的结束符
    
    for (int i = 0; i < num; i++) {
        scanf("%s", p + i * 101); // 依次输入字符串
        str[i] = p + i * 101; // 二级指针依次指向该字符串
    }
    
    qsort(str, num, sizeof(char *), cmp); // 排序
    
    for (int i = 0; i < num; i++) {
        printf("%s\n", str[i]);
    }
    
    free(str); // 释放内存
    free(p);
    
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务