两个字符串型数组如何相加(C语言)

2025-03-22 01:25:54
推荐回答(5个)
回答1:

你可以把字符串分解吗,因为第一个字符被排除
所以如果你需要atof 可以这样用
float ff=atof(&a[1]);
是不是。
借贷关系 你就直接取就行了 比如char jd=a[0];等等

回答2:

用函数!
头文件 #include

strcat(str1,str2);//将str2接到str1后面前提是str1要有足够多的空间接受str2里面的字符

或者自己写代码
char *p=str1;
char *q=str2;
while(*p)
{
p++;//将指针移动到str1尾部

}
while(*q)
{
*p++=*q++;//将str2里面的字符从str1尾部连接到str1;

}

回答3:

直接读取
1.读取至a[0]和b[0],与'D'和'C'比较,就可以判断是借还是贷
2.接着读取a[2] a[3] a[4] a[5] b[2] b[3] b[4] b[5]
并强制转换为int型
然后可以这样
int temp1 = a[2]*1000+a[3]*100+a[4]*10+a[5];
3.接着下面就是
temp1+temp2了

下面给出一个程序:
1.至于D还是C是借或贷,还有借贷怎么加减,你就自己处理了
2.你可以做一些小的修改就可以满足你想要的了,程序很简单,看不懂可以给我信息;
#include "stdio.h"
#include "stdlib.h"
int main()
{
char a[6] = "D1012";
char b[6] = "C0258";

//打印借贷,这段你自己修改,这里告诉你如何比较
if (a[0] =='D')
{
printf("a借贷\n");
}
if (b[0]=='D')
{
printf("b借贷\n");
}

int s,s1,s2;
s1 =atoi(a+1);//从a[1]开始转换
printf("a = %d\n",s1);
s2 =atoi(b+1);//从b[1]开始转换
printf("b = %d\n",s2);
s = s1 + s2;//s保存a+b的值
printf("a+b = %d\n",s);
return 0;
}

回答4:

用sscanf()可以实现,示例程序:

//---------------------------------------------------------------------------

#include

int main(void)
{
char a[6]="D0212";
char b[6]="C0012";
int ai,bi;/*从a和b中读取的数值*/
sscanf(a,"%*[^0123456789]%d",&ai);/*从字符串a中读取数值ai*/
sscanf(b,"%*[^0123456789]%d",&bi);/*从字符串b中读取数值bi*/
ai=a[0]=='D'?ai:ai*-1;/*根据字符串首字母判断是借还是贷*/
bi=b[0]=='D'?bi:bi*-1;
printf("%d",ai+bi);/*输出相加结果*/
return 0;
}
//---------------------------------------------------------------------------

回答5:

用指针行不
我也是 初学 提供个思路