用指针编写一个程序:输入三个字符串能按照由大到小的顺序输出
时间: 2024-02-28 14:54:32 浏览: 73
好的,以下是一个示例程序,可以实现输入三个字符串并按照由大到小的顺序输出:
```c
#include <stdio.h>
#include <string.h>
void swap(char **s1, char **s2) {
char *temp = *s1;
*s1 = *s2;
*s2 = temp;
}
void sort_strings(char *str1, char *str2, char *str3) {
if(strcmp(str1, str2) > 0) swap(&str1, &str2);
if(strcmp(str1, str3) > 0) swap(&str1, &str3);
if(strcmp(str2, str3) > 0) swap(&str2, &str3);
}
int main() {
char str1[100], str2[100], str3[100];
printf("请输入三个字符串:\n");
scanf("%s %s %s", str1, str2, str3);
sort_strings(str1, str2, str3);
printf("按由大到小的顺序输出:\n%s\n%s\n%s\n", str3, str2, str1);
return 0;
}
```
这个程序中,我们定义了两个函数,一个是 `swap` 函数,用于交换两个指针所指向的字符串;另一个是 `sort_strings` 函数,用于按照由大到小的顺序排序三个字符串。具体实现可以分为以下几个步骤:
1. 定义三个指针变量 `p1`、`p2` 和 `p3`,分别指向三个输入的字符串。
2. 使用 `strcmp` 函数比较字符串,若第一个字符串大于第二个字符串,则交换两个指针变量的值;若第一个字符串大于第三个字符串,则交换第一个指针变量和第三个指针变量的值;若第二个字符串大于第三个字符串,则交换第二个指针变量和第三个指针变量的值。
3. 在主函数中,我们通过调用 `sort_strings` 函数将三个输入的字符串按照由大到小的顺序排序,并输出结果。
需要注意的是,在 `swap` 函数中,我们需要使用指向指针的指针,才能实现交换指针变量的值。
阅读全文