如何在打印字符串时删除换行符
How to remove Newline while printing string
.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
MARS & QTSPIM 系统调用 #8 读取了一个字符串,但其中包括用户用来结束字符串输入的新行。此系统调用还附加一个 NUL 字符“\0”,使输入的字符串成为 C 风格的空终止字符串。
如果您不想在用户输入字符串时捕获换行符,您必须自己将其删除。最简单的做法是用 NUL 覆盖输入字符串中的 '\n' 字符,删除新行并将字符串缩短 1.
因为系统调用 #8 没有 return 长度(您可以返回 1 来定位换行符),您必须通过逐字节搜索来定位换行符.当您找到它时,用 0 覆盖它以终止那里的字符串。
.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
MARS & QTSPIM 系统调用 #8 读取了一个字符串,但其中包括用户用来结束字符串输入的新行。此系统调用还附加一个 NUL 字符“\0”,使输入的字符串成为 C 风格的空终止字符串。
如果您不想在用户输入字符串时捕获换行符,您必须自己将其删除。最简单的做法是用 NUL 覆盖输入字符串中的 '\n' 字符,删除新行并将字符串缩短 1.
因为系统调用 #8 没有 return 长度(您可以返回 1 来定位换行符),您必须通过逐字节搜索来定位换行符.当您找到它时,用 0 覆盖它以终止那里的字符串。