采用指针变量作为形参,编写一个实现两字符交换的函数。在主函数中输入一个字符串,调用字符交换函数将其中的字符按从小到大的顺序排序后输出。C语言
时间: 2023-12-14 21:36:55 浏览: 83
以下是代码实现:
```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 = 0;
while (*(str + len) != '\0') {
len++;
}
sortString(str, len);
printf("排序后的字符串为:%s\n", str);
return 0;
}
```
这里我们编写了两个函数:
- `swap`:用于交换两个字符的值。
- `sortString`:用于对字符串进行排序,使用了选择排序算法。
在主函数中,我们先输入一个字符串,并通过循环计算出字符串的长度。然后调用 `sortString` 函数对其进行排序,最后输出排序后的结果。
需要注意的是,我们在函数中使用指针变量来操作字符串,其中 `*(str + i)` 和 `str[i]` 的效果是一样的。
阅读全文