qsortを使って文字列のポインタ群のソートを行うサンプルソース †qsortを使って文字列のポインタ配列を文字列でソートするサンプルソースおよび実行結果を以下に記します。 スポンサーリンク 関連記事 †qsortを使って文字列群をソートする †以下のサンプルソースにより文字列のポインタ配列が示す文字列をソートすることができます。 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; } 文字列ソートの実行結果 †コンパイルし実行した結果を以下に記します。 $ gcc qsort_str.c -o qsort_str $ ./qsort_str ===== BEFORE ===== debian redhat ubuntu centos linuxmint ===== AFTER ===== centos debian linuxmint redhat ubuntu 以上、文字列のポインタ配列が示す文字列のソートをqsort関数で行う方法でした。 スポンサーリンク |