输入n个字符串按从小到大排序输出c语言
时间: 2023-10-08 16:03:00 浏览: 478
C语言程序设计-将主函数中输入的字符串反序存放;例如:输入字符串“abcdefg”,则应输出“gfedcba”;.c
5星 · 资源好评率100%
要按照从小到大的顺序对n个字符串排序并输出,可以使用C语言的字符串数组和字符串处理函数来实现。
首先,我们需要定义一个字符串数组来存储输入的n个字符串。假设我们定义的数组名为str,可以定义为char类型的二维数组,其中每一行存储一个字符串。
接下来,我们可以使用循环语句来读取n个字符串,并将它们存储到字符串数组中。
然后,我们可以使用排序算法对字符串数组进行排序。常见的排序算法有冒泡排序、快速排序和归并排序等。在这里,我们可以选择使用冒泡排序算法。
冒泡排序是一种简单且易于理解的排序算法。它通过比较相邻的两个元素并交换它们的位置来实现排序。由于我们要按照字符串的大小进行排序,可以使用strcmp()函数来比较两个字符串的大小。
最后,我们可以使用循环语句遍历已经排序好的字符串数组,并依次输出每个字符串。
下面是具体的代码实现:
```c
#include <stdio.h>
#include <string.h>
void bubbleSort(char str[][100], int n) {
int i, j;
char temp[100];
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() {
int n, i;
printf("请输入字符串的个数:");
scanf("%d", &n);
char str[n][100];
printf("请输入%d个字符串:\n", n);
for (i = 0; i < n; i++) {
scanf("%s", str[i]);
}
bubbleSort(str, n);
printf("按照从小到大排序后的字符串为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
以上是一个简单的实现方法,它可以实现按照从小到大的顺序对输入的n个字符串进行排序并输出。
阅读全文