加号作为不带string.h的char * [C ++]

时间:2018-11-08 00:35:47

标签: 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。

我当时正在考虑将数字转换为数字并加以解决,但我不知道。

1 个答案:

答案 0 :(得分:0)

您可以使用以下算法。您上小学时可能很熟悉:

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

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