1 #include<stdio.h>
  2 #include<string.h>
  3 #include<malloc.h>
  4 char* left( char *num,  char n);
  5 char* right( char *num,  char n);
  6 char* rever(char* p);
  7 int main()
  8 {
  9     char num[20];
 10     scanf("%s", &num);
 11     int type = 0;
 12     int i;
 13
 14     for(i = 0;i < strlen( num); i++){
 15         if(num[i] == '.'){
 16             type = 1;
 17         }else if(num[i] == '/'){
 18             type = 2;
 19         }else if(num[i] == '%'){
 20             type = 3;
 21         }
 22
 23     }
 24
 25     switch (type)
 26     {
 27
 28
 29         case 0:{
 30         char *result = rever(num);
 31         printf("%s",result);
 32         break;
 33         }
 34         case 1:{
 35         char *result = left(num,'.');
 36         char *part = right(num, '.');
 37         strcat(result, part);
 38         printf("%s",result);
 39         break;
 40         }
 41         case 2:{
 42         char *result = left(num, '/');
 43         char *part = right(num , '/');
 44         strcat(result, part);
 45         printf("%s",result);
 46         break;
 47         }
 48         case 3:{
 49         char *result = left(num, '%');
 50         char *part = right(num , '%');
 51         strcat(result, part);
 52         printf("%s",result);
 53         break;
 54         }
 55
 56     }
 57
 58     return 0;
 59
 60  }
 61
 62  char* left( char *num,  char n)//将小数以左的数字逆转去零 
 63  {
 64     char *tem =  strchr(num, n);
 65     int i;
 66     *tem = '\0';
 67     char *lef = (char*)malloc(sizeof(num) + 1) ;
 68     strcpy(lef, num);
 69     *tem = n;
 70     char *end = rever(lef);
 71 return end;
 72  }
 73
 74  char* right( char *num,  char n)//将小数以左的数字逆转去零 
 75  {
 76     char *tem =  strchr(num, n);
 77     int i;
 78     int len = strlen(tem);
 79     char *p = (char*)malloc(sizeof(tem) ) ;
 80     char *q = (char*)malloc(sizeof(tem) ) ;
 81     strcpy(p, tem);
 82     q[0] = n;
 83     for(i = 1; i < strlen(p)-1; i++){            //数字反转 
 84         q[len] = p[i];
 85         len--;
 86     }
 87     for(i = strlen(q); i > 0; i--){                 //去零 
 88         if(q[i] == 0){
 89             q[i] = '\0';
 90         }else{
 91         break;
 92         }
 93     }
 94     return q;
 95  }
 96
 97 char* rever(char* p)                           //去零加反转 
 98 {
 99     int i;
100     for(i = strlen(p); i > 0; i--){
101         if(p[i] == 0){
102             p[i] = '\0';
103         }else{
104         break;
105         }
106     }
107     char *q = (char*)malloc(sizeof(p) ) ;
108     int len = strlen(p);
109         for(i = 0; i < strlen(p)-1; i++){            //字符反转 
110         q[len] = p[i];
111         len--;
112     }
113     return q;
114 }
115
116
117  12
12-30 04:00