Assembly 如何在打印字符串时删除换行符
MARS&QTSPIM syscall#8读取字符串,但其中包括用户用于结束字符串输入的新行。此系统调用还附加NUL字符“\0”,以使输入的字符串成为以C样式null结尾的字符串 如果您不希望在用户输入字符串时捕获换行符,您必须自己删除它。最简单的方法是用NUL覆盖输入字符串中的“\n”字符,删除新行并将字符串缩短1 由于syscall#8不返回长度(可以从该长度返回1以查找新行字符),因此必须通过逐字节搜索来查找新行。当您发现新行时,将其覆盖为0以终止字符串。MARS&QTSPIM syscall#8读取字符串,但这包括用户用于结束字符串输入的新行。此系统调用还附加NUL字符“\0”,以使输入的字符串成为以C样式null结尾的字符串 如果您不希望在用户输入字符串时捕获换行符,您必须自己删除它。最简单的方法是用NUL覆盖输入字符串中的“\n”字符,删除新行并将字符串缩短1Assembly 如何在打印字符串时删除换行符,assembly,mips,mars-simulator,Assembly,Mips,Mars Simulator,MARS&QTSPIM syscall#8读取字符串,但其中包括用户用于结束字符串输入的新行。此系统调用还附加NUL字符“\0”,以使输入的字符串成为以C样式null结尾的字符串 如果您不希望在用户输入字符串时捕获换行符,您必须自己删除它。最简单的方法是用NUL覆盖输入字符串中的“\n”字符,删除新行并将字符串缩短1 由于syscall#8不返回长度(可以从该长度返回1以查找新行字符),因此必须通过逐字节搜索来查找新行。当您发现新行时,将其覆盖为0以终止字符串。MARS&QTSPIM sysca
由于系统调用#8不返回长度(从该长度可以返回1以查找新行字符),因此必须通过逐字节搜索来查找新行。当您发现它时,将其覆盖为0以终止该字符串。我希望像以下字符串数组一样打印={string int char}但是每个字符串都是在换行符中打印的我想像这样打印字符串数组={string int char}但是每个字符串都是在换行符中打印的
.data
.align 2
array: .space 80
size: .word 20
string: .space 20000
arrayLength: .asciiz "Enter the array length : "
input: .asciiz "Enter string : "
result: .asciiz "\nString Array = { "
cls: .asciiz "}"
space: .asciiz " "
.text
main:
li $v0,4
la $a0,arrayLength
syscall
li $v0, 5
syscall
addi $s0,$v0,0
add $t0,$zero,$zero
addi $t1,$zero,1
la $s2,string
read_String:
bgt $t1,$s0,L1
li $v0,4
la $a0,input
syscall
move $a0,$s2
li $a1,20
li $v0,8
syscall
sw $a0,array($t0)
addi $t0,$t0,4
addi $t1,$t1,1
addi $s2,$s2,20
j read_String
L1:
add $t0,$zero,$zero
addi $t1,$zero,1
la $a0,result
li $v0,4
syscall
while:
bgt $t1,$s0,done
lw $t2,array($t0)
li $v0,4
move $a0,$t2
syscall
addi $t0,$t0,4
addi $t1,$t1,1
j while
done:
li $v0,4
la $a0,cls
syscall
li $v0,10
syscall