剔除字串中的空格

2021-07-29 14:37:21 字數 1139 閱讀 5037

.model small

.data

.stack

prompt db 'please input a string :',0dh,0ah,'$'

buff db 255 ;緩衝區,用於存放字串

db ?

db 255 dup (?)

newline db 0dh, 0ah, "$" ;回車換行

.code

.startup

mov dx,offset prompt

mov ah,09h

int 21h

mov ax, seg buff ;取資料段存入ds中

mov ds, ax

;輸入字串到buff

mov dx,offset buff

mov ah, 0ah

int 21h

lea dx, newline ;輸出回車換行

mov ah, 9h

int 21h

;not_use macro

mov si, offset buff + 2h ;取字串位址到si中

outlp:cmp byte ptr [si],'$'

jz done

cmp byte ptr [si],' '

jnz next

mov di,si

inlp: inc di

mov al,[di]

mov [di-1],al

cmp byte ptr [di],'$'

jnz inlp

jmp outlp

next: inc si

jmp outlp

;endm

done: mov si, offset buff+2h;取字串位址到si中

again:

cmp byte ptr [si],'$'

jz bte

mov dl, byte ptr [si] ;輸出乙個字元

mov ah, 02h

int 21h

inc si

jmp again

bte: mov ah, 4ch

int 21h

.exit 0

end

字串中刪除空格

cstring strlogpathname m strprjpathname char dirver max drive path max path filename max fname ext max ext splitpath strlogpathname.getbuffer 1024 dir...

字串中的替換空格

題目 把字串中的每個空格替換成 20 思路 直觀的做法是從頭到尾掃瞄字串,遇到空格就做替換,然而由於將乙個字元替換成3個字元,我們必須將空格後面的所有字元都後移兩個位元組。這樣沒次遇到空格,都會移動字元。對於這種問題,當字串 或陣列 長度變大,從前往後操作時移動次數多時,可以考慮從後往前操作。ps ...

替換字串中的空格

這是乙個關於字串的題目,解決這個問題有如下方法。最直觀的方法,利用輔助空間,開始遍歷原字串,是空格則在輔助空間中用 20 字串替代,不是則直接複製到輔助空間中。此方法時間複雜度為o n 空間複雜度為o n 因為需要遍歷原字串,所以時間複雜度不能縮減。如果考慮空間複雜度為o 1 有一種從空間複雜度概念...