回 帖 发 新 帖 刷新版面

主题:这题怎么改,哪位高手帮我一下,谢谢了!

编程从THIS BOOK ! IS THIS A DISK?中删除所有的子串IS,删除后的字符串为“TH  BOOK !TH A DK?
A$="THIS BOOK ! IS THIS A DISK?"
N=LEN(A$):M=LEN("IS")
FOR I=1 TO N-1
X$=MID$(A$,I,M)
IF X$="IS" THEN
X$=""
ELSE
PRINT X$;
ENDIF
S$=S$+X$
NEXT I
PRINT S$
END
怎么改?帮帮忙?

回复列表 (共5个回复)

沙发

如果是我的话,我就干脆单个字符的比较,因为I后面都是S嘛
A$="THIS BOOK ! IS THIS A DISK?"
N=LEN(A$)
FOR I=1 TO N-1
X$=MID$(A$,I,1)
IF X$="I" or x$="S" THEN
X$=""
ELSE
END IF
S$=S$+X$
NEXT I
PRINT S$
END

板凳

a$ = "THIS BOOK ! IS THIS A DISK?"
b$ = "IS"
CLS
PRINT a$
n = LEN(a$)
m = LEN(b$)
i = 1
DO WHILE i <= LEN(a$) - m + 1
  IF b$ = MID$(a$, i, m) THEN
    a$ = LEFT$(a$, i - 1) + RIGHT$(a$, LEN(a$) - m + 1 - i)
  ELSE
    i = i + 1
  END IF
LOOP
PRINT a$
END

3 楼

a$ = "THIS BOOK ! IS THIS A DISK?"
b$ = "IS"
c$ = ""
CLS
PRINT a$
alen = LEN(a$)
blen = LEN(b$)
p1 = 1
p2 = 1
DO
  p1 = p2
  DO WHILE b$ <> MID$(a$, p2, blen) AND p2 <= alen - blen + 1
    p2 = p2 + 1
  LOOP
  c$ = c$ + MID$(a$, p1, p2 - p1)
  p2 = p2 + blen
LOOP WHILE p2 <= alen - blen + 1
PRINT c$
END

4 楼

这样做的话,不是都改变了吗,那改的地方也太多了!
如果自己编的话,当然是这样做的了

5 楼

print delchr$("THIS BOOK ! IS THIS A DISK?","IS")

function delchr$(a$,d$)
l=len(d$)
do
   v=instr(a$,d$)
   if v>0 then a$=left$(a$,v-1)+mid$(a$,v+l)
loop while v
delchr$=a$
end function

我来回复

您尚未登录,请登录后再回复。点此登录或注册