【发布时间】:2015-06-03 11:40:31
【问题描述】:
我想知道如何将字符串中的某些类型的字符推到它的末尾,例如: 我有
.data
string: .asciiz "H3LL0 W0RLD"
我想通过循环扫描字符串,如果遇到数字,则将其放在最后一个位置,因此输出将为“HLL WRLD300”
我已经完成了字符串长度的编码,我也知道如何扫描每个字符,但我似乎无法识别数字并将其推到最后。
这是字符串长度的代码:
length:
li $v0, 0
lbu $t1, ($a0)
for:
beqz $t1, end_for
addi $v0, $v0, 1
addi $a0, $a0, 1
lbu $t1, ($a0)
j for
end_for:
jr $ra
提前感谢您的帮助
【问题讨论】:
-
最简单的方法可能是为结果字符串设置一个单独的缓冲区。遍历原始字符串一次并将所有非数字复制到另一个缓冲区,然后再次遍历原始字符串并复制所有数字。
-
可以,但我如何识别数字
-
有没有办法不使用缓冲区,只处理字符串?
-
遍历字符串,当你找到一个数字时,将它后面的所有字符向左移动一步,然后将数字放在末尾。
标签: string assembly character mips