Помогите обрезать строку ввода возвращаемого символа MIPS - PullRequest
1 голос
/ 04 декабря 2010

Я пишу игру в MIPS и беру имя игрока. Когда я пытаюсь напечатать что-то вроде:

li $v0, 4  
la $a0, playerName  
syscall

li $v0, 4  
la $a0, strEnd     #strEnd = ("'s Hand: ")  
syscall

Итак, я хочу, чтобы это отображалось:

"playerName's Hand: "

Все не отображается на одной строке. Я вместо этого получаю:

"playerName  
's Hand: "

Мой вопрос: как я могу удалить символ новой строки из имени, которое я взял? Спасибо

Ответы [ 2 ]

1 голос
/ 29 ноября 2012
# Your code to take a player's name

    li $s0,0               # Set index to 0
remove:
    lb $a3,word($s0)      # Load character at index
    addi $s0,$s0,1        # Increment index
    bnez $a3,remove    # Loop until the end of string is reached
    beq $a1,$s0,skip      # Do not remove \n when it isn't present
    subiu $s0,$s0,2     # Backtrack index to '\n'
    sb $0, word($s0)        # Add the terminating character in its place

Удаляет символ новой строки :)

0 голосов
/ 04 декабря 2010

Пройдите строку, содержащую имя игрока, пока не дойдете до нулевого символа. Сохраните эту позицию. Затем поместите нулевой символ в поз-1. (Я думаю, что вы также должны поместить его в поз-2, поскольку перевод строки иногда состоит из 2 отдельных символов.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...