ascii排序2, 测试通过


1. ASCII 包括0-255, 用fgets不好使了,只能用EOF或者超过100个字符判断了, EOF用CTRL D产生在bash下

2. 用getchar()获取标准输入的ascii字符, 放在int 数组里,为方便存储getchar()的返回值为int, EOF或者error的时候都会返回一个负数



#include <stdio.h>  
#include <string.h>   
#define MAX_SIZE 200 

void sort(int array[], int n)   
{  
    int temp = 0;  
    int i,j,k;  
  
    for(i=0;i<n-1;i++)  
    {  
        k=i;  
        for(j=i+1;j<n;j++)  
        {  
            if(array[k] > array[j])  
              k=j;  
        }  
        if(k!=i)  
        {  
            temp=array[i];  
            array[i]=array[k];  
            array[k]=temp;  
        }  
    }  
}  

int isAlphabet(int c)
{
   return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
}

int main()   
{   
   int input[MAX_SIZE];  
   int ainput[MAX_SIZE];  

   
   int i = 0;  
   int j = 0;  
   int num = 0;  
   int il = 0;  
  
   
   for(i=0; i<100 && (input[i]=getchar())>=0; i++) 
   {
   }
   //printf("i:%d\n",i);
   
   il = i;
/*
   for(i=0;i<100&& input[i]>=0;i ++)
   {
       printf("%d,%d\n",i, input[i]);
   }
 */ 
   j = 0;
   for(i=0; i<il;i++)  
   {  
       if(isAlphabet(input[i]))   
       {  
           ainput[j++] = input[i];
           input[i] = 256;  
       } 
   }  

   num = j ;
   sort(ainput, num);   
   
   j = 0; 
   for(i=0; i<il; i++)
   {
       if(input[i] == 256)
       {
           input[i] = ainput[j++];
       }
   }   

   for(i=0;i<il;i++)
   {
       printf("%c", (char)input[i]);
   }
   return 0; 
} 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值