C++ 将数字添加为不带字符串的字符*[C+;+;]
我想添加两个char*格式的数字。 例如: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 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。这就是为什么您应该使用预先存在的数字