采用指针变量作为形参,编写一个实现两字符交换的函数。在主函数中输入一个字符串,调用字符交换函数将其中的字符按从小到大的顺序排序后输出。用c语言
时间: 2024-02-16 20:04:05 浏览: 61
C语言程序设计-编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序;.c
5星 · 资源好评率100%
以下是实现两字符交换并按从小到大排序的代码:
```c
#include <stdio.h>
void swap(char *a, char *b) {
char temp = *a;
*a = *b;
*b = temp;
}
void sort(char *str, int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
if (str[i] > str[j]) {
swap(&str[i], &str[j]);
}
}
}
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
sort(str, strlen(str));
printf("排序后的字符串为:%s\n", str);
return 0;
}
```
在这里,我们使用了两个函数,`swap` 和 `sort`。`swap` 函数接收两个指向字符的指针变量作为形参,实现了两个字符的交换。`sort` 函数接收一个指向字符的指针变量和一个整数作为形参,实现了对字符串的排序。在 `main` 函数中,我们先读入一个字符串,然后调用 `sort` 函数对字符串进行排序,最后输出排序后的字符串。
注意,在 `swap` 函数中,我们使用了指针变量的解引用操作,即 `*a` 和 `*b`,来获取指针所指向的字符的值,并使用指针变量的地址操作,即 `&str[i]` 和 `&str[j]`,来获取该字符在数组中的地址。这样就可以通过指针变量实现两个字符的交换了。
阅读全文