代码改变世界

玩玩而已——gcc 编译 c 字符串处理

2010-09-19 08:17  kwjlk  阅读(351)  评论(0)    收藏  举报

代码
#include <stdio.h>
#include
<stdlib.h>
#include
<string.h>
void bowchar(char* chp,int*a1,int* a2,int*b)
{
int len = strlen(chp);
int i=0;
char ch;
//printf("str = %s & len = %d\n",chp,len);
if(len>0)
{
for(i=0;i<len;i++)
{
if(*(chp+i)=='.'||*(chp+i)=='\0')
break;
}
//printf("i = %d",i);
*(chp+i) = '\0';
if(len>i+6)
*(chp+i+6) = '\0';
if(i>9)
{
ch
= *(chp+(i-8));
*(chp+(i-8)) = '\0';
//printf("str1-1 = %s",chp);
//printf("%d",atoi(chp));
*a1 = atoi(chp);
*(chp+(i-8)) = ch;
//printf("str1-1 = %s",chp+(i-8));
*a2 += atoi(chp+(i-8));
}
else{
*a1 = 0;
*a2 = atoi(chp);
}
//printf("str1 = %s & int = %d%d\n",chp,*a1,*a2);
*b = atoi(chp+i+1);
//printf("str2 = %s & int = %d\n\n",chp+i+1,*b);
}
else{
*a1=0;
*a2=0;
*b=0;
}
}
int main(char* args[])
{
int t1,t11,t2,k1,k11,l;
char a[30]={'\0'};
char b[30]={'\0'};
char c[30]={'\0'};
char d[30]={'\0'};
int n=1;
char cha[20];
char ch = '\0';
while(scanf("%s%s%s%s",a,b,c,d)!=EOF)
{
k1
= 0,k11 = 0,l = 0;

bowchar(a,
&t1,&t11,&t2);
k1
+=t1;k11+=t11;l+=t2;

bowchar(b,
&t1,&t11,&t2);
k1
+=t1;k11+=t11;l+=t2;

bowchar(c,
&t1,&t11,&t2);
k1
+=t1;k11+=t11;l+=t2;

bowchar(d,
&t1,&t11,&t2);
k1
+=t1;k11+=t11;l+=t2;

k1
+=(k11/100000000);
k11
= k11%100000000;

printf(
"Case %d:\n",n);
if(k1) printf("%d",k1);
printf(
"%d\n",k11);
if(l)
{
printf(
".%d\n",l);
}
n
++;
memset(a,ch,
20);
memset(b,ch,
20);
memset(c,ch,
20);
memset(d,ch,
20);
}
return 0;
}