我有一个程序,我需要翻转一个句子中的每个单词。 我做了我的程序,但它也反转了每个单词和句子,但我不想反转这句话。
这就是我想要的决赛:
My string: Razvan Balaci String print: navzaR icalaB
但我的节目打印:
icalaB navzaR
这是我的代码:
.data
string: .space 12
reverso: .space 12
menssagem: .asciiz "Enter in stringing, max 11 characters: "
.text
main:
la $a0, menssagem #calling opening menssagem
li $v0, 4
syscall
li $v0, 8
la $a0, string
li $a1, 12
syscall
li $t1, 0
bump:
lbu $t0, string($t1)
beqz $t0, stend
addu $t1, $t1, 1
j bump
stend:
li $t2, 0
addi $t1, $t1 -1
populate:
blt $t1, $zero, done
lb $t3, string($t1)
sb $t3, reverso($t2)
sub $t1, $t1, 1
add $t2, $t2, 1
j populate
done:
sb $zero, reverso($t2) #null terminate reverso
li $v0, 4
la $a0, reverso
syscall
li $v0, 10
syscall
也许我需要做一个子串? 谢谢。
答案 0 :(得分:0)
可能有所帮助的一些解决方案大纲:
- 保留一个小字大小的空间(可能是10-20个字节)。
- 为句子保留两个空格(一个用于原始字符串,一个用于结果)。
- 存储指向所有三个空格的3个指针。
-Lop,指针指向原始句子(对于每个字符),在每次迭代中执行以下操作:
希望它有所帮助!如果你愿意,你可以比这更有效地做到这一点(例如,#34;结果"空间不是真的需要。)