C语言的字符串相加

来源:百度知道 编辑:UC知道 时间:2024/09/23 12:01:44
大家看看我写的这个函数有没有什么不妥的地方

void StringPlus(char *s1,char *s2,char *s3)
{
int i,j,k=0;
int c,f,t=0;
char ch,s[40];
for(i=0;i<40;i++)*(s+i)=0;
i=strlen(s1)-1;
j=strlen(s2)-1;
while(j>=0 && i>=0)
{
f=*(s1+i)+*(s2+j)-'1'*2+2+t;
*(s+k)=f%10+'1'-1;
if(f>9)t=1;
else
t=0;
i--;
j--;
k++;
}
if(i<0 && j<0 && t!=0)*(s+k)=t+'1'-1;
if(i>=0 || j>=0)
{
if(i<0){
for(i=j;i>=0;i--)
{
*(s+k)=*(s2+i)+t;
t=0;
k++;
}
}
else if(j<0)
{
for(j=i;j>=0;j--)
{
*(s+k)=*(s1+j)+t;
t=0;
k++;
}
}
}
for(i=0;i<40;i++)*(s3+i)=0;
i=0;
for(c=strlen(s)-1;c>=0;c--){
*(s3

何不把程序题发出来看看,不清楚你所谓的高精度是什么意思
你可以研究下strcat的结构看看,同样是完成字符串相加的操作

唯一要肯定的是,既然是相加操作,字符串的空间肯定不能给固定长度