#navi(contents-page-name): No such page: ソート

qsortを使って文字列のポインタ群のソートを行うサンプルソース

qsortを使って文字列のポインタ配列を文字列でソートするサンプルソースおよび実行結果を以下に記します。

c-top.html is not found or not readable.

関連記事

qsortを使って文字列群をソートする

以下のサンプルソースにより文字列のポインタ配列が示す文字列をソートすることができます。

&ref(): File not found: "qsort_str.c" at page "ソート/qsortを使って文字列のポインタのソートを行う"; (改行コードLF)

#include <stdio.h>
#include <stdlib.h>

int string_compar(const void *a, const void *b)
{
    return(strcmp(*(char**)a, *(char**)b));
}

int main(void)
{
    int i;
    char *data[5];

    data[0] = "debian";
    data[1] = "redhat";
    data[2] = "ubuntu";
    data[3] = "centos";
    data[4] = "linuxmint";

    printf("===== BEFORE =====\n");
    for(i=0; i<5; i++) {
        printf("%s\n", data[i]);
    }

    for(i=0; i<5; i++) {
        qsort((void*)data, 5, sizeof(char*), string_compar);
    }

    printf("===== AFTER =====\n");
    for(i=0; i<5; i++) {
        printf("%s\n", data[i]);
    }

    return 0;
}

文字列ソートの実行結果

コンパイルし実行した結果を以下に記します。

$ gcc qsort_str.c -o qsort_str
$ ./qsort_str 
===== BEFORE =====
debian
redhat
ubuntu
centos
linuxmint
===== AFTER =====
centos
debian
linuxmint
redhat
ubuntu

以上、文字列のポインタ配列が示す文字列のソートをqsort関数で行う方法でした。

c-btm.html is not found or not readable.

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS