字符串排序指针c语言
时间: 2023-12-14 21:34:56 浏览: 142
用c语言给字符串排序
以下是使用指针数组对字符串进行排序的C语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NUM 100
#define MAX_LEN 100
void sort(char **str, int n);
int main()
{
char *str[MAX_NUM];
int n, i;
printf("请输入字符串个数n:");
scanf("%d", &n);
printf("请输入%d个字符串:\n", n);
for (i = 0; i < n; i++) {
str[i] = (char *)malloc(MAX_LEN * sizeof(char));
scanf("%s", str[i]);
}
sort(str, n);
printf("排序后的字符串为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", str[i]);
}
for (i = 0; i < n; i++) {
free(str[i]);
}
return 0;
}
void sort(char **str, int n)
{
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(str[i], str[j]) > 0) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
```
代码说明:
1. 定义了两个常量`MAX_NUM`和`MAX_LEN`,分别表示字符串个数和字符串长度的最大值。
2. `sort`函数用于对字符串进行排序,采用冒泡排序算法。
3. 在`main`函数中,首先定义了一个指针数组`str`,用于存储输入的字符串。然后通过`scanf`函数依次读入每个字符串,并将其存储到`str`数组中。
4. 调用`sort`函数对`str`数组中的字符串进行排序。
5. 最后依次输出排序后的字符串,并释放动态分配的内存。
阅读全文