+ -
当前位置:首页 → 问答吧 → 实现从键盘接收一个长度小于20的字符串,删除其中所有的数字字符,保存并显示

实现从键盘接收一个长度小于20的字符串,删除其中所有的数字字符,保存并显示

时间:2010-11-29

来源:互联网

下面是我写的,大家帮忙看看哪里错了。运行后输入一个字符串回车后显示的是乱码。
DATA SEGMENT
  MESG1 DB 'INPUT A STRING ','$'
  BUF1 DB 20,?,20 DUP(?)
  BUF2 DB 20,?,20 DUP(?)
DATA ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
  MOV DS,AX
  MOV DX,OFFSET MESG1
  MOV AH,09H
  INT 21H

  MOV DL,0AH
  MOV AH,02H
  INT 21H
   
  LEA DX,BUF1
  MOV AH,0AH
  INT 21H
   
  MOV SI,3
  MOV DI,3
AGAIN: 
  MOV AL,BUF1[SI]
  CMP AL,'$'
  JZ EXIT
  CMP AL,48H
  JB INPUT
  CMP AL,57H
  JA INPUT
  INC SI
  JMP AGAIN
INPUT:
  MOV BL,BUF2[DI]
  MOV BL,AL
  INC DI
EXIT:
  LEA DX,BUF2
  MOV AH,09H
  INT 21H
  MOV AX,400H
  INT 21H
CODE ENDS
END START
   

作者: JavaG450   发布时间: 2010-11-29

思路从前到后的扫描,开辟缓冲区保存新串。

作者: JavaG450   发布时间: 2010-11-29