题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/dfeed0e0e4624814b122265e859783b2
/** 每个字符串会少于100个字符 将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。 */ #include<stdio.h> #include<string.h> void sort(char str[][300], int n) { int i, j; char temp[300]; for (i = 0; i < n - 1; i++) //按照字符串长度 冒泡排序 for (j = 0; j < n - 1 - i; j++) { int len1 = strlen(str[j]); int len2 = strlen(str[j + 1]); if (len1 >= len2) { strcpy(temp, str[j]); strcpy(str[j], str[j + 1]); strcpy(str[j + 1], temp); } } } int main() { int i, n, k; while ( scanf("%d", &n) != EOF) { char str[n][300]; getchar(); for (i = 0; i < n; i++) { gets(str[i]); if (str[i][0] == 's' && str[i][1] == 't' && str[i][2] == 'o' && str[i][3] == 'p') { break; } } sort(str, i); //n=5 i=5 4 for (k = 0; k < i; k++) { printf("%s\n",str[k]); } } return 0; }