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>
/****************************************************
函 數(shù) 名: xxtodx(a,b)
功 能: 將小寫數(shù)字金額轉換成大寫漢字金額
入口參數(shù): a 小寫數(shù)字字串(不含小數(shù)點,擴大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; /* 取整得到第一個數(shù)字 */
je=je-m*j;
if (m>0) /* 若有數(shù)字 */
{ if (bz==2) /* 若干個0輸出一個零 */
{ strcpy(b,dx[0]); b+=2; }
strcpy(b,dx[m]); /* 輸出漢字數(shù)字 */
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
痛比快樂多 閱讀(87)
評論(0) 編輯 收藏