在主函数中定义如下10个等长的字符串,用另一函数对它们排序,然后在主函数输出这10个已排好序的字符串 abc edf ghi jkl mno pwr stu vwx yz1 234
时间: 2024-03-06 22:49:37 浏览: 16
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
void string_sort(char str[][4], int n) {
char temp[4];
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(str[j], str[j+1]) > 0) {
strcpy(temp, str[j]);
strcpy(str[j], str[j+1]);
strcpy(str[j+1], temp);
}
}
}
}
int main() {
char str[10][4] = {"abc", "edf", "ghi", "jkl", "mno", "pwr", "stu", "vwx", "yz1", "234"};
int n = 10;
string_sort(str, n);
printf("排序后的字符串:\n");
for (int i = 0; i < n; i++) {
printf("%s ", str[i]);
}
printf("\n");
return 0;
}
```
代码运行结果:
```
排序后的字符串:
234 abc edf ghi jkl mno pwr stu vwx yz1
```
解释一下代码:
- `string_sort` 函数接收一个二维字符数组 `str` 和一个整数 `n`,表示字符串的个数。该函数使用冒泡排序算法对字符串进行排序,注意到每个字符串长度为 3,因此我们可以使用 `strcmp` 函数比较字符串的大小,使用 `strcpy` 函数交换字符串位置。
- `main` 函数中声明一个二维字符数组 `str`,存储 10 个长度为 3 的字符串,然后调用 `string_sort` 函数对其进行排序,并输出结果。