C ++,从char数组中提取signed-multi-digit-integers

时间:2012-11-22 05:25:55

标签: c++ arrays integer character

(Linux上的C ++,KiTTy)

(HOMEWORK)

嗨,这里的新网站。 我希望(如标题所示)从一个字符数组中提取多位数和一位数的整数。

示例输入如下所示:

1234 + -5000 + 65 =

数据将存储在数组中......

[1] [2] [3] [4] [+] [ - ] [5] [0] [0] [0] [''] [+] [''] [6] [5] [''] [\ 0] ...... [MAX_STR_LEN]

输出需要是1234,-5000和5的总和。需要考虑的事项是:

  1. 我必须创建任何用于处理信息的辅助函数。
  2. 稍后将转换为Motorola 68k ASM语言(手动)。
  3. 有什么建议吗?非常感谢!

    更新:解决了!感谢大家!我使用了博士的建议。

1 个答案:

答案 0 :(得分:1)

我会做两个功能。

a)将char数组分成几个char [],每个char []只有一个数字。应该是直接的,只需遍历数组,当你找到一个数字开始复制,当你发现一个分离标记停止(即+或 - 或'')并跳到下一个。

b)然后是第二个函数,它接受一个带有ascii表示一个数字的char数组并将其转换为int。好吗?所以对于长度为3的char [],例如char [2] + char [1] * 10 + char [2] * 100; (假设这里是ascii'1'的int是1,'2'= 2 - 如果没有进行转换的查找表)

如果在位置0中有一个' - '字符,也会有if语句使其为负...

然后添加它们。完成。