点击(此处)折叠或打开
-
root@ubuntu:/home/chen/study/unix/bigdata# more bigdata2.c
-
#include <stdio.h>
-
#include <string.h>
-
#include <iostream>
-
using namespace std;
-
int NumAdd(const char *first,const char *second,char *result,int resultlen)
-
{
-
int numlen[2];
-
numlen[0] = strlen(first);
-
numlen[1] = strlen(second);
-
int maxlen = numlen[0] > numlen[1] ? numlen[0]:numlen[1];
-
if (resultlen < maxlen + 1)
-
return -1;
-
int n;
-
int byteValue[2];
-
int curByteResult=0;
-
int addByteResult=0;
-
for(n =maxlen-1;n >= 0; n--)
-
{
-
--numlen[0];
-
--numlen[1];
-
if(numlen[0] >= 0)
-
{
-
byteValue[0] = first[numlen[0]] - '0';
-
printf("numlen0=%c",first[numlen[0]]);
-
}
-
else
-
{
-
byteValue[0] = 0;
-
}
-
if(numlen[1] >= 0)
-
{
-
byteValue[1] = second[numlen[1]] - '0';
-
printf("numlen1=%c",second[numlen[1]]);
-
}
-
else
-
{
-
byteValue[1] = 0;
-
}
-
printf("\n");
-
curByteResult = byteValue[0] + byteValue[1] + addByteResult;
-
if(curByteResult >= 10)
-
{
-
curByteResult -= 10;
-
addByteResult = 1;
-
/*
-
if (n == 0)
-
{
-
result[0] = '1';
-
++result;
-
}
-
else
-
{
-
++result[n-1];
-
}
-
*/
-
-
result[n] = '0' + curByteResult;
-
}
-
else
-
{
-
result[n] = '0' + curByteResult;
-
addByteResult = 0;
-
}
-
printf("result[%d]=%c",n,result[n]);
-
//printf("%c ",first[0]);
-
}
-
//result[0]=0;
-
result[10]=0;
-
printf("result=%s\n",result);
-
//int i;
-
//for (i =0;i<11;i++)
-
//printf("result[%d]=%c\n",i,result[i]);
-
//cout<<*result<<endl;
-
return 1;
-
/*
-
char *n="hello world";
-
int nlen=0;
-
nlen=strlen(n);
-
printf("maxlen=%d\n",nlen);
-
-
printf("numlen[0]=%d,numlen[1]=%d\n",numlen[0],numlen[1]);
-
int numtest;
-
char *n=first;
-
numtest=sizeof(first);
-
printf("numtest=%d\n",numtest);
-
*/
-
}
-
int main()
-
{
-
char szstr1[]="1234560000";
-
char szstr2[] = "6666";
-
char result[100];
-
NumAdd(szstr1,szstr2,result,100);
-
printf("result is %s",result);
-
return 0;
-
}
- root@ubuntu:/home/chen/study/unix/bigdata#
输出结果
点击(此处)折叠或打开
-
root@ubuntu:/home/chen/study/unix/bigdata# g++ bigdata2.c -o big2
-
root@ubuntu:/home/chen/study/unix/bigdata# ./big2
-
numlen0=0numlen1=6
-
result[9]=6numlen0=0numlen1=6
-
result[8]=6numlen0=0numlen1=6
-
result[7]=6numlen0=0numlen1=6
-
result[6]=6numlen0=6
-
result[5]=6numlen0=5
-
result[4]=5numlen0=4
-
result[3]=4numlen0=3
-
result[2]=3numlen0=2
-
result[1]=2numlen0=1
-
result[0]=1result=1234566666
- result is 1234566666