2010-12-04 8 views
1

私はMIPSでゲームを書いています。私はプレーヤーの名前を取ります。私のようなもの印刷しようとすると:文字列の入力をトリミングするのに役立ちますMIPS

li $v0, 4 
la $a0, playerName 
syscall 

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

をだから私は、ディスプレイにそれをしたい:

"playerName's Hand: " 

すべてが同じ行に表示されません。私が代わりに取得:

"playerName 
's Hand: " 

私の質問はどのように私は私が取った名前から改行文字を削除することができますか?ありがとう

+1

うわー、MIPSでゲームを削除し、最高のマゾヒズム – user472875

答えて

0

ヌル文字に達するまで、プレーヤー名を含む文字列を移動します。その位置を保管してください。次に、pos-1にヌル文字を配置します。 (改行は時々2つの別々の文字であるので、私は、あなたにもPOS-2でそれを置く必要があるでしょうと思います。)

1
# 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 

は、改行文字:)

関連する問題