ytu C语言习题 等长字符串排序
时间: 2025-06-30 20:27:28 浏览: 10
### C语言等长字符串排序的示例代码
以下是基于用户需求提供的一份完整的C语言实现方案,用于对等长字符串进行排序:
#### 示例代码
```c
#include <stdio.h>
#include <string.h>
// 自定义比较函数,用于qsort排序
int compare(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main() {
char strArray[10][20]; // 假设最多存储10个等长字符串,每个字符串最长为19字符
int i;
printf("请输入10个等长的字符串:\n");
for (i = 0; i < 10; i++) {
scanf("%s", strArray[i]); // 输入字符串
}
// 使用qsort函数对字符串数组进行排序
qsort(strArray, 10, sizeof(strArray[0]), compare);
printf("排序后的字符串列表如下:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", strArray[i]);
}
return 0;
}
```
此代码实现了通过`qsort()`函数对固定数量的等长字符串进行排序的功能。其中,`compare`函数作为自定义的比较逻辑被传递给`qsort()`[^4]。
---
### 关键点解析
1. **字符串输入**
用户可以通过标准输入依次录入10个等长字符串。这里假设每条字符串的最大长度不超过19字符(含结束符`\0`),因此分配了一个二维字符数组`strArray[10][20]`来存储这些字符串[^3]。
2. **使用`qsort`函数**
`qsort`是一个通用的快速排序库函数,在头文件`<stdlib.h>`中声明。它接受四个参数:待排序的数据区域、数据项的数量、单个数据项的大小以及一个指向比较函数的指针。在此处,我们利用了`strcmp`来进行字典顺序上的比较操作[^4]。
3. **输出结果**
排序完成后,程序会逐一打印出已经按照字母升序排列好的字符串序列[^1]。
---
### 注意事项
如果题目要求严格限定不允许修改原始字符串,则可以考虑采用指针数组的方式间接调整访问次序而不实际变动原内存位置中的内容[^4]。
---
阅读全文
相关推荐


















