题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
#include <stdio.h> #include <stdlib.h> #include <string.h> int cmp(const void* a, const void *b) { //const char *str1 = (const char *)a; return strcmp((const char *)a, (const char *)b); } int main() { // char *str_list = NULL; // int num = 0; // scanf("%d", &num); // str_list = malloc(num*sizeof(char*)); // int i = 0; // char str[101] = {0}; // for (i = 0; i < num; i++) { // memset(str, 0, sizeof(str)); // scanf("%s", str); // int len = // } char str_list[1000][101] = {0}; memset(str_list, 0, sizeof(str_list)); int num = 0; scanf("%d", &num); int i = 0; for (i = 0; i < num; i++) { scanf("%s", str_list[i]); } qsort(str_list, num, sizeof(str_list[0]), cmp); for (i = 0; i < num; i++) { printf("%s\n", str_list[i]); } return 0; }
收获点:
1.字符串长度是1-100,那么数组的长度应该是101,否则会溢出
2.qsort虽然号用,但是自己还是需要学习一些简单的排序算法