#navi(../) * qsortを使って文字列のポインタ群のソートを行うサンプルソース [#gdfda19b] qsortを使って文字列のポインタ配列を文字列でソートするサンプルソースおよび実行結果を以下に記します。 #contents #htmlinsertpcsp(c-top.html,c-sp.html) * 関連記事 [#y6311725] -[[qsortを使って文字列のポインタ群のソートを行うサンプルソース>ソート/qsortを使って文字列のポインタのソートを行う]] -[[qsortを使って数値配列のソートを行うサンプルソース>ソート/qsortを使って数値配列のソートを行う]] * qsortを使って文字列群をソートする [#s6634f60] 以下のサンプルソースにより文字列のポインタ配列が示す文字列をソートすることができます。 &ref(qsort_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; } * 文字列ソートの実行結果 [#scbc0262] コンパイルし実行した結果を以下に記します。 $ gcc qsort_str.c -o qsort_str $ ./qsort_str ===== BEFORE ===== debian redhat ubuntu centos linuxmint ===== AFTER ===== centos debian linuxmint redhat ubuntu 以上、文字列のポインタ配列が示す文字列のソートをqsort関数で行う方法でした。 #htmlinsertpcsp(c-btm.html,c-sp.html)