将字符串按顺序放进二维字符数组中,写程序将字符串按从小到大排序c语言
时间: 2024-10-06 11:03:12 浏览: 58
C程序设计_指针和字符串_实验报告
在C语言中,如果你想要将字符串按照字典序放入二维字符数组并排序,可以先创建一个结构体,包含字符串和它的索引,然后使用冒泡排序或快速排序算法对这个结构体数组进行排序。以下是简单的步骤:
1. 定义结构体 `StringWithIndex`:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char* str;
int index;
} StringWithIndex;
```
2. 创建字符串数组并将它们添加到结构体数组中:
```c
int n = 5; // 假设有5个字符串
StringWithIndex arr[n];
// 初始化数组,这里假设输入的字符串和对应索引
for (int i = 0; i < n; i++) {
char str[100]; // 假定每个字符串长度不超过100
scanf("%s", str);
arr[i].str = str;
arr[i].index = i;
}
```
3. 使用冒泡排序对数组进行排序:
```c
void bubbleSort(StringWithIndex arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(arr[j].str, arr[j + 1].str) > 0) {
// 交换元素
char* temp = arr[j].str;
arr[j].str = arr[j + 1].str;
arr[j + 1].str = temp;
// 保持原来的索引
int tempIndex = arr[j].index;
arr[j].index = arr[j + 1].index;
arr[j + 1].index = tempIndex;
}
}
}
}
// 调用排序函数
bubbleSort(arr, n);
```
4. 打印排序后的结果:
```c
for (int i = 0; i < n; i++) {
printf("%d: %s\n", arr[i].index, arr[i].str);
}
```
阅读全文