用指针的方法输入三个字符串,按由小到大的顺序输出
时间: 2023-10-31 08:11:00 浏览: 101
下面是一个示例代码,实现了输入3个字符串并按照从小到大的顺序输出:
```c
#include <stdio.h>
#include <string.h>
int main() {
char *str[3];
char temp[128];
// 输入3个字符串
for (int i = 0; i < 3; i++) {
printf("请输入第%d个字符串:", i+1);
scanf("%s", temp);
str[i] = (char *) malloc(strlen(temp) + 1);
strcpy(str[i], temp);
}
// 冒泡排序
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2 - i; j++) {
if (strcmp(str[j], str[j+1]) > 0) {
char *temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
// 输出排序后的字符串
printf("按照字典序从小到大排序后的结果为:\n");
for (int i = 0; i < 3; i++) {
printf("%s\n", str[i]);
free(str[i]);
}
return 0;
}
```
上述代码中,我们定义了一个指针数组 `str`,用于存储输入的3个字符串。在输入时,我们使用 `malloc` 函数动态申请内存,将输入的字符串复制到新申请的内存中,以避免在后续排序时出现问题。
排序部分使用冒泡排序算法,通过比较两个字符串的字典序大小,交换它们在数组中的位置,从而实现从小到大排序。
最后,我们遍历排序后的字符串数组,输出每个字符串,并使用 `free` 函数释放之前申请的内存。
阅读全文