/* 使用字符指针数组对字符串进行排序 */ #include #define NUM 5 int main(void) { char * p[NUM] = { NULL }; int i, j; char * tmp = NULL; /* 数组内的有效字符指针个数必须等于NUM */ p[0] = "Nelson Aldrich"; p[1] = "A. Piatt Andrew"; p[2] = "Frank Vanderlip"; p[3] = "Henry P.Davison"; p[4] = "Charles D.Norton"; /* 对数组中的字符串排序 */ for (i = 0; i < NUM - 1; ++i) { for (j = i + 1; j < NUM; ++j) { if (0 < strncmp(p[i], p[j])) { /* 互换两个指针指向的字符串 */ tmp = p[i]; p[i] = p[j]; p[j] = tmp; } } } /* 输出数组中的各字符串 */ for (i = 0; i < NUM; ++i) puts(p[i]); return 0; }