用X替换重复的连续字符

时间:2019-07-09 12:39:05

标签: mips

我的代码有些麻烦。

我需要在控制台上输入/输出。


输入字符串:aaabcccdeefggg

输入字符:X

替换:XXXbXXXdXXfXXX <-我想要此输出

但是我得到的输出是-> XXabXXcdXefXXg

我不知道错误在哪里,我正在寻找这个错误的小时。

.data
    enterString:        .asciiz "Input String > "
    enterChar:      .asciiz "Input char> "
    changedString:      .asciiz "\nReplace: "
    numberOfAdditions:  .asciiz "\Total Replaces: "
    userInput:              .space 555
.text
main:
    li  $v0, 4
    la  $a0, enterString
    syscall

    li  $v0, 8
    la  $a0, userInput
    li  $a1, 554
    syscall

    li $v0,4
    la $a0,enterChar
    syscall

    li $v0,12
    syscall
    move $t5,$v0            # $t0 = character to be replaced

    li  $t0, 0
    li  $t1, 1
    j   findDoubleCharacters
findDoubleCharacters:
    lbu $s0, userInput( $t0 )
    lbu $s1, userInput( $t1 )
    addi    $t0, $t0, 1
    addi    $t1, $t1, 1
    beq $s0, $s1, found
    beq $s1, 0, end
    j   findDoubleCharacters
found:
    subi    $t0, $t0, 1
    subi    $t1, $t1, 1
    sb  $t5, userInput($t0)          
    addi    $s2, $s2, 1
    j findDoubleCharacters
end:
    li  $v0, 4
    la  $a0, changedString

    syscall
    li  $v0, 4
    la  $a0, userInput

    syscall
    li  $v0, 4
    la  $a0, numberOfAdditions
    syscall

    li  $v0, 1
    move    $a0, $s2
    syscall
...

0 个答案:

没有答案