| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 946 人关注过本帖
标题:[求助]字符串中删除指定字符
只看楼主 加入收藏
youyou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-11
收藏
 问题点数:0 回复次数:4 
[求助]字符串中删除指定字符

题目要求:在STR字符串中删除指定字符,要删除的字符通过键盘输入。要求删除一个字符后,后续字符相应前移。

偶现在的想法是,通过键盘输入后,查找,找不到就直接把原先的字符串显示出来
找到的话就执行题目的操作
但是现在不大明白删除怎么弄,还有就是后续字符的前移

请大家多多帮助!
谢谢先~~~~~~~

搜索更多相关主题的帖子: 字符 删除 键盘 题目 
2006-05-11 09:37
youyou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-11
收藏
得分:0 

为虾米都米人来帮帮偶呢?
2006-05-11 12:55
公子吕
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2006-5-4
收藏
得分:0 

.model small
.data
prompt DB 0dh,0ah,'Formerly the string is: ',0dh,0ah,'$'
prompt1 DB 0dh,0ah,'Now it is: ',0dh,0ah,'$'
prompt2 db 'Input a letter.',0dh,0ah,'$'

str db 'abcdefghijklmnopqrstuvwxyz','$'
flag db ?
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
mov bx,offset flag-1

mov dx,offset prompt2 ;输出提示
mov ah,9
int 21h

mov ah,1
int 21h ;从键盘接收要删除的字符.接收的字符在al中.

mov dx,offset prompt
mov ah,9
int 21h
mov dx,offset str
mov ah,9
int 21h ;输出提示.

again:
mov di,offset str
dec di

whileequ:
inc di
cmp byte ptr [di],'$' ;字符串结束,退出.
jz exit
cmp byte ptr [di],al ;是不是要删除的字符?
jnz whileequ
mov si,di
dec di ;目的串比源串上前一个字符,准备前移.
cld
mov cx,bx
sub cx,si ;cx=str尾部地址-当前地址,即字符的前移个数.
rep movsb
dec bx ;删除一个字符str尾部地址提前一个字节.
jmp again ;继续从头查找要删除的字符.

exit:
mov dx,offset prompt1
mov ah,9
int 21h
mov dx,offset str ;输出结果.
mov ah,9
int 21h

mov ah,7
int 21h
mov ah,4ch
int 21h
end start

我的程序可能不完全正确,你自己试一下,多想想,一定能够解决的

2006-05-11 15:55
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
删除就是靠后半个串往前“挪1格”实现的。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-11 17:20
youyou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-11
收藏
得分:0 

谢谢楼上两位!

2006-05-13 17:02
快速回复:[求助]字符串中删除指定字符
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019053 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved