このエントリーをはてなブックマークに追加


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

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


スポンサーリンク

関連記事

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

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

fileqsort_str.c (改行コード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関数で行う方法でした。


スポンサーリンク

添付ファイル: fileqsort_str.c 706件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 21:01:00