Добавление чисел в виде символа * [C ++] без string.h - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу добавить два числа, которые находятся в символе *. Например:

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 голосов
/ 08 ноября 2018

Вы можете использовать следующий алгоритм. Это может быть знакомо вам из начальной школы:

  • Дополните более короткую строку начальными нулями, чтобы длины были равны.
  • Пусть Керри будет 0.
  • Начиная с последнего индекса:
    • Преобразование символа в текущем индексе обеих входных строк в числовое значение, которое представляет символ. Добавьте Carry и обе входные цифры вместе. Результатом будет число AB, где A и B - цифры (возможно, 0).
    • Установить выходную цифру для текущего индекса на B.
    • Установить Carry на A.
    • Повторяйте, пока вся строка не будет обработана.

Я оставлю обработку отрицательных чисел в качестве упражнения.

...