c语言字符串排序指针完成
时间: 2023-08-08 18:05:59 浏览: 123
当使用指针来完成C语言中的字符串排序时,可以使用标准库函数`strcmp`来比较字符串,并使用指针数组来存储字符串的地址。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
void sortStrings(char *strings[], int n) {
char *temp;
int i, j;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
int main() {
char *strings[MAX_SIZE];
int n, i;
printf("Enter the number of strings: ");
scanf("%d", &n);
printf("Enter %d strings:\n", n);
for (i = 0; i < n; i++) {
char buffer[MAX_SIZE];
scanf("%s", buffer);
strings[i] = strdup(buffer); // 使用strdup函数动态分配内存并拷贝字符串
}
sortStrings(strings, n);
printf("\nSorted strings:\n");
for (i = 0; i < n; i++) {
printf("%s\n", strings[i]);
free(strings[i]); // 释放内存
}
return 0;
}
```
这段代码首先要求用户输入字符串的数量,然后依次输入字符串。接下来,使用`sortStrings`函数对字符串进行排序。最后,打印出排序后的字符串数组,并释放动态分配的内存。
请注意,在使用`strdup`函数分配内存时,需要在程序结束时逐个释放这些内存,以避免内存泄漏。
阅读全文