输入字符串后删除多余的空格

时间:2014-09-24 00:19:38

标签: string assembly mips

嗨我想知道是否有一种简单的方法来删除我为要输入的字符串分配的空格,或者可能是一种不比较单词后面的空格的方法。该程序是回文检测器。任何建议都会很棒。

实施例。输出:

赛车,而不是回文,因为它有一些空的空间。

aaaaaaaaaa是一个回文,因为它没有空格...

再次只需要一个修补程序来删除输入单词后的空格,或者忽略单词后面的空格。谢谢。

.data

intro : .asciiz "Lets See If Your Word is a Palinfrome!\n"

question: .asciiz "Please Enter up to a 10 Character word: "

Y_P: .asciiz "Yes it is!"

N_P: .asciiz "No Its Not!"

str1: .space 10


.text

.globl main
main:


li $v0, 4 
la $a0, intro
syscall
li $v0, 4
la $a0, question
syscall

li $v0, 8
la $a0,str1
addi $a1,$zero,10


syscall

move $t0, $a0

palindrome:
 addi $t0, $0, 0 # j = 0
length: add $t2, $a0, $t0 # $t2 = &array[j]
 lb $t2, 0($t2) # $t2 = array[j]
 beq $t2, $0, done # end of string?
 addi $t0, $t0, 1 # j = j+1
 j length
done: addi $t0, $t0, -1 # j = j-1
 addi $t1, $0, 0 # i = 0
loop: slt $t2, $t1, $t0 # $t2 = 1 if i < j
 beq $t2, $0, yes # if !(i < j) return
 add $t2, $a0, $t1 # $t2 = &array[i]
 lb $t2, 0($t2) # $t2 = array[i]
 add $t3, $a0, $t0 # $t3 = &array[j]
 lb $t3, 0($t3) # $t3 = array[j]
 bne $t2, $t3, no # is palindrome?
 addi $t0, $t0, -1 # j = j-1
 addi $t1, $t1, 1 # i = i+1
 j loop
yes: # yes a palindrome
 addi $v0, $0, 1

 li $v0, 4
 la $a0, Y_P
 syscall 

 li $v0, 10
 syscall
 j yes
 jr $ra
no: # not a palindrome
 addi $v0, $0, 0

 li $v0, 4
 la $a0, N_P
 syscall 


 li $v0, 10
 syscall
 j no
 jr $ra

0 个答案:

没有答案