主函数中输入10个不等长的字符串。用另一个函数对它们按升序排序, 然后在主函数中输出这10个已排序的字符串,用C语言
时间: 2024-05-06 08:14:46 浏览: 75
C语言程序设计-将主函数中输入的字符串反序存放;例如:输入字符串“abcdefg”,则应输出“gfedcba”;.c
5星 · 资源好评率100%
以下是用选择排序对不等长的字符串按升序排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 交换两个字符串
void swap(char* str1, char* str2) {
char temp[100];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
// 按升序排序字符串数组
void sortStrings(char arr[][100], int n) {
int i, j, min_idx;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (strcmp(arr[j], arr[min_idx]) < 0) {
min_idx = j;
}
}
if (min_idx != i) {
swap(arr[i], arr[min_idx]);
}
}
}
int main() {
char arr[10][100];
int i;
printf("请输入10个字符串:\n");
for (i = 0; i < 10; i++) {
scanf("%s", arr[i]);
}
sortStrings(arr, 10);
printf("排序后的字符串为:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
```
这个程序中,我们使用了 `strcmp` 函数来比较两个字符串的大小,使用了 `strcpy` 函数来交换两个字符串。注意,我们假设每个字符串的长度不超过 100 个字符,因此在定义数组和交换字符串时要考虑到这一点。
阅读全文