代码一
#include <stdio.h>
#include <string.h>
char *fun(char *s1,char *s2,char *r)
//功能:将两个长度相等的数字字符串当作两个加数,求其代表的数值之和并以字符串的形式存入r所指内存且返回
{
int len,cy=0,md;
char *p,*q,*t;
len=strlen(s1);
p=s1+len-1;
q=s2+len-1;
t=r+len;
*(t+1)='\0';//
while(p>=s1)
{
md=*p-'0'+*q-'0'+cy;//
if(md>=10)
cy=1;
else
cy=0;
*t=md%10+'0';
p--;
q--;
t--;
}
if(cy==1)//
*t='1';
else
{
while(*r++=*++t);
}
return r;
}
void main()//报错 [Error] '::main' must return 'int'
{
char s1[100],s2[100],s3[100];
strcpy(s1,"65743");
strcpy(s2,"85339");
fun(s1,s2,s3);
printf("%s+%s=%s\n",s1,s2,s3);
}//
代码二
#include <stdio.h>
#include <string.h>
void fun(char *s0,char *s1,char *s2,char *s3)
//功能:将s0所指字符串分解成3个字符串,分别存入s1,s2,s3所指内存中
//分解的方法是,s1,s2,s3从s0中依次按顺序每隔3个字符取1个
{//
char *p1=s0,*p2=s0+1,*p3=s0+2;
int len=strlen(s0),i=0,j=0,k=0;
while(p1<s0+len||p2<s0+len||p3<s0+len)
{
if(p1<s0+len)
{
s1[i++]=*p1;
p1=p1+3;
}
if(p2<s0+len)
{
s2[i++]=*p2;
p2=p2+3;
}
if(p3<s0+len)
{
s3[i++]=*p3;
p3=p3+3;
}
}
s1[i]='\0';
s2[j]='\0';
s3[k]='\0';
}//
void main()//报错 [Error] '::main' must return 'int'
{
void NONO();
char s0[100],s1[40],s2[40],s3[40];
printf("请输入一行字符串\n");
gets(s0);
fun(s0,s1,s2,s3);
puts(s1);
puts(s2);
puts(s3);
NONO();
}
void NONO()
{
FILE *fp=fopen("out.dat","w");
chars0[10][100]={"1234567890qazwsx","abcdefghij","0987654321plmokn","fsdjfsdlrj564342dsf","gfdklgjdsfl4754398",
"zxcvbnmasdfg","asdfghjkl123","qwertyuiop456","qweasdzxc789","poiuytrewqwsxqaz"};
//报错 [Error] 'chars0' was not declared in this scope
//报错 [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11
char s1[40],s2[40],s3[40];
int i;
for(i=0;i<10;i++)
{
fun(s0[i],s1,s2,s3);//报错 [Error] 's0' was not declared in this scope
fprintf(fp,"s1=%s,s2=%s,s3=%s\n",s1,s2,s3);
}
fclose(fp);
}