编写函数对字符串进行排序,要求使用二维数组作为参数。C语言
时间: 2024-10-22 11:21:22 浏览: 32
在C语言中,你可以编写一个函数来对二维字符数组按照某种规则进行排序。这里我将演示如何按字母顺序对行内的字符进行升序排列。假设我们有一个包含字符串的二维数组,我们可以使用嵌套循环和标准库函数`strcmp()`来实现这个功能。
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void sort_strings(char strings[][MAX_STR_LENGTH], int rows);
#define MAX_STR_LENGTH 50 // 字符串最大长度
void sort_strings(char strings[][MAX_STR_LENGTH], int rows) {
for (int i = 0; i < rows - 1; i++) {
for (int j = 0; j < rows - i - 1; j++) {
if (strcmp(strings[j], strings[j + 1]) > 0) { // 如果前一个字符串大于后一个
// 使用strcpy临时存储,避免直接交换导致覆盖原数据
char temp[MAX_STR_LENGTH];
strcpy(temp, strings[j]);
strcpy(strings[j], strings[j + 1]);
strcpy(strings[j + 1], temp);
}
}
}
}
int main() {
char str_array[5][MAX_STR_LENGTH] = {"banana", "apple", "orange", "grape", "mango"};
int num_rows = sizeof(str_array) / sizeof(str_array[0]);
printf("Before sorting:\n");
for (int i = 0; i < num_rows; i++) {
printf("%s\n", str_array[i]);
}
sort_strings(str_array, num_rows);
printf("\nAfter sorting:\n");
for (int i = 0; i < num_rows; i++) {
printf("%s\n", str_array[i]);
}
return 0;
}
```
阅读全文