随笔-4  评论-1  文章-1  trackbacks-0

 

del_right(char *s)   //去掉右空格
{
   char *p;
   p=s;
   for(p+=strlen(s)-1;*p==' ';p--);
   *(p+1)=0;
}

del_left(char *s)   //去掉左空格
{
    char *p1, *p2;
    p1=p2=s;
    while(*p2==' ') p2++;
    while(*p1++=*p2++);
}

change_upper(char *s)      //转换小写字符串为大写

   int length, i; 
   length = strlen(s); 
   for (i=0; i<length; i++) 
   { 
      s[i] = toupper(s[i]); 
   } 

   //printf("%s\n",s); 

   return 0; 


change_lower(char *s) //转换大写字符串为小写

   int length, i; 
   length = strlen(s); 
   for (i=0; i<length; i++) 
   { 
      s[i] = tolower(s[i]); 
   } 

   //printf("%s\n",s); 

   return 0; 
}


go_right(char *s,int len)   //将客户名称补足len位
{
   int i=0,j=len-strlen(s);
   char *p;
   p=s;
   for(p+=strlen(s)-1;i<=j;i++,*(p+i)=' ');
   *(p+i)='\0';
}

#include <stdio.h>
/****************************************************
 函 数 名: xxtodx(a,b)
 功    能: 将小写数字金额转换成大写汉字金额
 入口参数: a  小写数字字串(不含小数点,扩大100倍)
           b  转换后的大写汉字字串
 ****************************************************/
xxtodx(a,b)
char *a,*b;
{
 int i,bz,wz,m;
 double je,je1,j;
 static char *dw[13]={"佰","拾","亿","仟","佰","拾","万","仟",
                      "佰","拾","元","角","分"};
 static char *dx[10]={"零","壹","贰","叁","肆","伍","陆","柒",
                      "捌","玖"};
 static char *z={"整"};
 if (strlen(a)==0) je=0;             /* 字串长度为0,金额为0 */
 else je=atof(a);                    /* 将字串转换成双精度  */
 i=0;bz=0;wz=1;je1=je;
 if (je==0) { strcpy(b,dx[0]); b+=2; } /* 输出为零 */
 else
 { for(j=1000000000000.00;j>=1.00;j/=10.00)
    { m=je/j;                        /* 取整得到第一个数字 */
      je=je-m*j;
      if (m>0)                       /* 若有数字           */
       { if (bz==2)                  /* 若干个0输出一个零  */
          { strcpy(b,dx[0]); b+=2; }
         strcpy(b,dx[m]);            /* 输出汉字数字       */
         b+=2;
         strcpy(b,dw[i]);            /* 输出金额单位       */
         b+=2;
         bz=1;                       /* 挂起零标志         */
       }
      else
       {
        if ((i==2)&&(je1>=10000000000.00))
         { strcpy(b,dw[i]); b+=2; } /* 输出"亿"字          */
        if (i==3) wz++;
        if (i==4) wz++;
        if (i==5) wz++;
        if ((i==6)&&(je1>=1000000.00)&&(wz!=4))
         { strcpy(b,dw[i]); b+=2; }/* 输出"万"字           */
        if ((i==10)&&(je1>=100))
         { strcpy(b,dw[i]); b+=2; }/* 输出"元"字           */
        if (i==12)
         { strcpy(b,z); b+=2;}     /* 若无"分",输出"整"字  */
        if ((i!=0)&&(i!=12)&&(bz!=0)) bz=2; /*激活零标志   */
       }/* of else */
       i++;
    }/* of for() */
 }/* of else */
}

del_LR_flag(s,LR,flag)    //从LorR方向删除s的flag字符
char *s,LR,flag;
{
   int i,j;
   switch (LR){
     case 'L':
              for(i=0,j=0;i<strlen(s);i++){
                if(s[i]==flag && j==0) continue;
                s[j]=s[i];
                j++;
              }
              s[j]='\0';
              break;
     case 'R':
              for(i=strlen(s)-1;i>=0;i--){
                if(s[i]!=flag) break;
              }
              substr(s,s,1,i+1);
              break;
     default:return(-1);
   }
   return 0;
}

posted on 2005-03-10 14:30 痛比快乐多 阅读(85) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问