使用C语言采用指针变量作为形参,编写一个实现两字符交换的函数。在主函数中输入一个字符串,调用字符交换函数将其中的字符按从小到大的顺序排序后输出。
时间: 2024-03-14 15:46:10 浏览: 57
好的,这是一个简单的C语言程序,实现了字符交换和字符串排序的功能:
```c
#include <stdio.h>
#include <string.h>
void swap(char *a, char *b) {
char temp = *a;
*a = *b;
*b = temp;
}
void sort_string(char *str) {
int len = strlen(str);
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);
sort_string(str);
printf("按从小到大排序后的字符串为:%s\n", str);
return 0;
}
```
在该程序中,我们定义了两个函数,一个是名为swap()的函数,用来交换两个字符;另一个是名为sort_string()的函数,用来按从小到大排序字符串。这两个函数的形参都是指向字符的指针变量,使用指针变量可以直接修改原来的字符。
在swap()函数中,我们首先定义了一个名为temp的临时变量,用来存储a指向的字符。然后将a指向的字符替换成b指向的字符,将b指向的字符替换成temp变量中存储的字符。
在sort_string()函数中,我们首先使用strlen()函数计算出字符串的长度。接着使用两个嵌套的循环,遍历整个字符串,每次将相邻的两个字符进行比较,如果前面的字符大于后面的字符,则调用swap()函数交换这两个字符的位置。最后得到的就是按从小到大排序后的字符串。
在main()函数中,我们首先定义了一个字符数组str,然后使用scanf()函数从标准输入中读取这个字符串。接着调用sort_string()函数将字符串排序,最后输出结果。
需要注意的是,在输入字符串时,我们使用了%s格式控制符,这个控制符表示读取一个字符串,遇到空格或者换行符就停止读取。
阅读全文