版权声明:此文章为作者筱睿_原创文章,转载请附上博客链接 https://blog.csdn.net/qq_43756486/article/details/86694246
字符串排序
目的:输入任意长度字符串,使其按a~z(或者说是按ASCII码顺序排列)
这里使用字符数组存储,使用选择排序的方法进行排序,关于选择排序,可参考我之前的博客练习7,有详细说明
思路
这里根据字符对应的ASCII码的十进制数进行排序,关于ASCII码不做过多解释.
实现
#include<iostream>
#include<string.h>
void swap(char *a,char *b) //交换函数
{
char t;
t=*a;
*a=*b;
*b=t;
}
using namespace std;
int main(){
char a[101];
cout<<"请输入任意长度字符串"<<endl;
gets(a); //用gets输入可以不被空格打断
int size=strlen(a); //求出a的长度
for(int i=0;i<size-1;i++) //size长度只需要进行size-1趟
{
for(int j=i+1;j<size;j++) //前i个已经归位,从i+1开始判断
{
if(a[i]>a[j]) //如果前面比后面大,就交换
{
swap(&a[i],&a[j]);
}
}
}
cout<<"排序后的字符串为:"<<endl;
puts(a); //使用puts输出可在输出结束自动换行
return 0;
}