(Linux 上的 C++,KiTTy)
(家庭作业)
您好,这里是网站的新手。 我正在寻找(如标题所示)从字符数组中提取多位和一位整数。
示例输入如下所示:
1234+-5000 + 65 =
数据将存储在数组中......
[ 1 ][ 2 ][ 3 ][ 4 ][ + ][ - ][ 5 ][ 0 ][ 0 ][ 0 ][' '][ + ][' '][ 6 ][ 5 ] [' '][\0 ]......[MAX_STR_LEN]
输出需要是 1234、-5000 和 5 的总和。需要考虑的事项是:
- 我必须创建任何用于处理信息的辅助函数。
- 稍后将转换为 Motorola 68k ASM 语言(手动)。
有什么建议吗?非常感谢!
更新:已解决!感谢大家!我采纳了医生的建议。
最佳答案
我会做两个函数。
a) 将 char 数组分成几个 char[],每个 char[] 只有一个数字。应该是直截了当的,只需遍历数组,当你找到一个数字时开始复制,当你找到一个分隔标记停止(即 + 或 - 或 ' ')并跳到下一个。
b) 然后是第二个函数,它接受一个带有一个数字的 ascii 表示的 char 数组,并将其转换为一个 int。容易吗?所以对于长度为 3 的 char[] 例如 char[2] + char[1] * 10 + char[2] * 100; (这里假设 int of ascii '1' is 1, '2' = 2 - 如果没有则查找表进行转换)
还有一个 if 语句,如果在位置 0 处有一个 '-' 字符,则将其设为负数......
然后添加它们。完毕。
关于C++,从 char 数组中提取带符号的多位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13506367/