C语言在main函数中使用gets输入三个字符串,调用swap函数数次来使得三个字符串按字典顺序从大到小的顺序存储,并输出到屏幕上。
时间: 2023-06-05 20:05:24 浏览: 144
C语言字符串的输入和输出
这是一个编程问题,我可以帮助您解决。以下是一种可能的解决方案:
```
#include <stdio.h>
#include <string.h>
void swap(char **s1, char **s2) {
char *temp = *s1;
*s1 = *s2;
*s2 = temp;
}
int main() {
char s1[100], s2[100], s3[100];
printf("请输入三个字符串:\n");
gets(s1);
gets(s2);
gets(s3);
if (strcmp(s1, s2) < 0) {
swap(&s1, &s2);
}
if (strcmp(s1, s3) < 0) {
swap(&s1, &s3);
}
if (strcmp(s2, s3) < 0) {
swap(&s2, &s3);
}
printf("排序后的字符串为:\n");
printf("%s\n%s\n%s\n", s1, s2, s3);
return 0;
}
```
该程序首先使用 gets 函数从标准输入读取三个字符串,然后使用 swap 函数进行排序。swap 函数接受两个指向字符指针的指针,即两个字符串的地址,交换它们的指针就可以交换两个字符串。程序通过逐个比较字符串的字典顺序,将最大的字符串移到最后,最终输出排好序的字符串。
请注意,gets 函数存在缓冲区溢出的风险,不应该在实际的程序中使用。建议使用更安全的函数 fgets 或者 scanf 来读取字符串。
阅读全文