我必须从标准输入中读取两个数字作为字符串,在C中。我怎样才能将它们的和作为字符串打印出来?我有:
char a[10],b[10];
printf("enter the two numbers");
scanf("%s%s",&a,&b);
char sum[20];
sum=?
请给我一点小小的提示?
谢谢!
答案 0 :(得分:2)
就像在小学那样做
让我们说输入是“...... 69 + ... 63”
9 + 3 = 2 and 1 to go
6 + 6 + 1 = 3 and 1 to go
...
答案 1 :(得分:2)
使用编程方式执行此操作,就像在纸上进行编程一样。做一些小步骤,明确我们在纸上做的每一个小步骤,而不会注意到。
00111
---------
12345
123456789
---------
123469134
0
结尾。 5+9=14
的高位数。您需要在另一个变量中维护它。使用循环。添加完成后,您需要知道总长度,然后将其移到左边缘。因为我们事先并不知道我们会得到多长,所以您将从sum
数组的右边缘开始写下答案。想一想,如何以及如何改善这一点。
答案 2 :(得分:2)
除非禁止这样做,否则我会接受以下内容:
将输入字符串转换为数字。我会尝试strtol()
。
添加数字
将总和从数字转换为字符串。我会尝试snprintf()
。
答案 3 :(得分:1)
使用atoi
将字符串转换为数字,然后将它们一起添加,然后使用printf等打印函数打印总和。见this
答案 4 :(得分:1)
chars
是8位二进制数,就像较小的ints
一样。我们必须解释它们以赋予它们作为字母的含义。
您的计算机可能使用ASCII标准。在ASCII中,表示字符char
的{{1}}值实际上不具有数值0.它是48.幸运的是,数字都是连续的,因此0
是49,等等。 / p>
1
(请注意char zero = '0';
printf("%d\n", zero);
char one = '1';
printf("%d\n", one);
> 48
> 49
中的%d
格式标志表示“解释为整数”。)
由于printf
是数字,我们可以用它们做数学。
chars
现在,您可以使用十进制数字来实现添加,并像在纸上一样进行操作。