采用指针变量作为形参,编写一个实现两个字符交换的函数,在主函数中输入一个字符串,调用字符交换函数将其中的字符按从小到大的排序后输出;
#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
int a,b,c;
void swap(char *x,char *y);
char str[N],i,j;
printf("请输入字符串:\n");
gets(str);
// for(i=0;str[i]!='\0';i++)//顺序排序。
// for(j=i+1;str[j]!='\0';j++)//每次都是第一个和剩下的全部比较,每一趟少一个
// {
// if(str[i]>str[j]) //从小到大排序
// swap(&str[i],&str[j]); //逆序就交换
// }
for(i=0;str[i]!='\0';i++)//冒泡排序。
for(j=0;j<strlen(str)-i-1;j++)//不减一的话没有遍历最后一个字符
{
if(str[j]>str[j+1]) //从小到大排序
swap(&str[j],&str[j+1]); //逆序就交换
}
printf("排序后的结果是:%s\n",str);
return 0;
}
void swap(char *x,char *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}