2021-01-19

   日期:2021-01-21     浏览:97    评论:0    
核心提示:字符串内排序题目描述输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。对于排序,我直接写了个简单的冒泡排序:void sort(char a[],int n){ int i,j; char temp; for(i=1;i<=n;i++){ for(j=n;j>i-1;j--){ if(a[j]<a[j-1]){ temp=a[j];

字符串内排序

题目描述
输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。

对于排序,我直接写了个简单的冒泡排序:

void sort(char a[],int n){ 
    int i,j;
    char temp;
    for(i=1;i<=n;i++){ 
        for(j=n;j>i-1;j--){ 
            if(a[j]<a[j-1]){ 
                temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;

            }

        }

    }
}

对于这种不确定个数的字符串输入,通常要有结束输入的标识,一般会以-1什么的结束,但这个题没有给出,这里我们采用换行符’\n’来作为结束标志:

int main(){ 
    int i=0,j;
    char a[200];
    scanf("%c",&a[i]);//先输入一个a[0],以进入循环
    while(a[i]!='\n'){ 
    	i++;
	    scanf("%c",&a[i]);
        
    }
    sort(a,i);
    for(j=1;j<=i;j++){ //这里由于把空行输入了数组,如果从零开始,就会打印出一个空行,暂时没想到更好的解决办法,因为空行是被排在最前面,所以从1开始打印
        printf("%c",a[j]);
        
 }

    
}

当然也可以采用这样的方式进行输入:

int main(){ 
    int i=0,j;
    char a[200];
    while((scanf("%c",&a[i]))!=EOF){ 
    	i++;
	    
        
    }
    sort(a,i);
    for(j=2;j<=i;j++){ //这里多输入了两个空行
        printf("%c",a[j]);
        
 }}

在运行时,输入完字符后,先按enter键,再按Ctrl+z,再enter,就会得到想要的结果

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服