C++ 将数字添加为不带字符串的字符*[C+;+;]

C++ 将数字添加为不带字符串的字符*[C+;+;],c++,char,character,add,subtraction,C++,Char,Character,Add,Subtraction,我想添加两个char*格式的数字。 例如: char aux1[100]; char aux2[100]; char answer[100]; aux1="913"; aux2="88"; answer= aux1+aux2; //1001 最后一行当然错了。 我尝试使用atoi,但我不能使用字符串库。我要添加不能用int或long int连接的数字。我只能使用char*,答案必须是char* 减法“-”也一样。如果是负数,符号将转到第一个位置0 我在考虑将数字转换为数字并求解它,但我不知

我想添加两个char*格式的数字。 例如:

char aux1[100];
char aux2[100];
char answer[100];

aux1="913";
aux2="88";

answer= aux1+aux2; //1001
最后一行当然错了。 我尝试使用atoi,但我不能使用字符串库。我要添加不能用int或long int连接的数字。我只能使用char*,答案必须是char*

减法“-”也一样。如果是负数,符号将转到第一个位置0


我在考虑将数字转换为数字并求解它,但我不知道。

您可以使用以下算法。你可能从小学就熟悉了:

  • 用前导零填充较短的字符串,使长度相等
  • 让进位为0
  • 从最后一个索引开始:
    • 将两个输入字符串的当前索引中的字符转换为该字符表示的数值。将进位和两个输入数字相加。结果将是一个数字AB,其中a和B为数字(可能为0)
    • 将当前索引处的输出数字设置为B
    • 将进位设置为A
    • 重复此操作,直到处理完整个字符串

我将把负数的处理留作练习。

-292818272719392872188382838282828432983不能加入到连
长整型
长整型
都不适合的整数中。因此,除非使用
float
double
,否则必须使用支持算术运算的任意精度库。当数字是正数时,一个数字一个数字地处理事情是很容易的,但当涉及负数时,就变得棘手了。最好让一个预先存在的库为您完成繁重的工作,这就是为什么应该使用char*。该数字不能放入long-long int。这就是为什么您应该使用预先存在的数字