C语言,采用指针变量作为形参,编写一个实现两字符交换的函数。在主函数中输入一个字符串,调用字符交换函数将其中的字符按从小到大的顺序排序后输出
时间: 2024-02-24 18:55:25 浏览: 71
好的,这是一个经典的 C 语言问题。下面是代码实现:
```c
#include <stdio.h>
void swap(char *a, char *b) {
char temp = *a;
*a = *b;
*b = temp;
}
void sortString(char *str, int len) {
int i, j;
for (i = 0; i < len - 1; i++) {
for (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);
int len = strlen(str);
sortString(str, len);
printf("排序后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们首先定义了一个 `swap` 函数,用于交换两个字符。然后定义了 `sortString` 函数,用于对字符串中的字符按照从小到大的顺序进行排序。最后在主函数中读入字符串,调用 `sortString` 函数进行排序,然后输出结果。
需要注意的是,在调用 `swap` 函数时,我们需要传入字符的地址,而不是字符本身。这是因为我们要通过指针修改字符的值,而不是仅仅传递一个副本。因此,我们使用了 `&` 运算符来取得字符的地址。
另外,我们使用了 `strlen` 函数来获取字符串的长度。这个函数在 `<string.h>` 头文件中定义,用于计算字符串中的字符数量。
阅读全文