回 帖 发 新 帖 刷新版面

主题:字符串问题

输入一个字符串,内有数字和非数字字符。如A123X456Y7A,302ATB567BC,打印字符串中所有连续(指不含非数字字符)的数字所组成的整数,并统计共有多少个整数。

回复列表 (共10个回复)

沙发

CLS
INPUT S$
FOR I = 1 TO LEN(S$)
IF MID$(S$, I, 1) >= "0" AND MID$(S$, I, 1) <= "9" THEN
PRINT MID$(S$, I, 1);
FLAG = -1
ELSEIF FLAG THEN
PRINT ,
FLAG = 0
N = N + 1
END IF
NEXT
IF FLAG THEN
FLAG = 0
N=N+1
PRINT
PRINT N
END
'(我改了一次)

板凳

问题是怎么让电脑区分字符和数字

3 楼

IF MID$(S$, I, 1) >= "0" AND MID$(S$, I, 1) <= "9" THEN
这样分字符和数字

4 楼

K=0
C$=""
LINE INPUT A$
N=LEN(A$)
FOR I=1 TO N
B$=MID$(A$,I,1)
IF B$>= "0" AND B$<= "9" THEN C$=C$+B$ AND K=K+1
NEXT
PRINT C$,K
END

5 楼

input a$
b=len(a$)
for c=1 to b
d$=mid$(a$,c,1)
if 48<asc(d)<57 then n$=n$+d$
if val(d$)>0 then s=s+1
next c
print n$,s
end

6 楼

你们都应该把def的写法看清楚,
多想想为什么他要还多一个标志Flag
还有草原野狼的
IF B$>= "0" AND B$<= "9" THEN C$=C$+B$ AND K=K+1
and不是这样用的,它只是一个运算符号
你可以把它改为冒号
但我建议最好还是改成if块
if ... then
   ...
   ...
endif

7 楼

我看了def的帖子了,高手就是高手啊,
以前我问过一个类似的问题,我会了,所以在这里我明白“if flag then"的意思,
我确实觉得这个网站不错。

8 楼

moz是不是说我的程序除了and用错以外,其它都是对的。我对我来说是一个进步,全凭想,也没有调试。其实主要原因是没电脑,等以后有了就好办了。

9 楼

我是提醒你们看一看 def 的 flag 的作用
你的程序里面只是把数字全部挑出来了,
也就是说只把字符串里的数字全部过滤到你的b$去了
只变得剩一个长长的整数了
人家要的是各个连续数字组成的整数
def 就利用 flag 把A123X456Y7A,302ATB567BC
分出来了
123
456
7
302
567
这几个整数了
而你的只剩下
1234567302567
这么一个整数了.
你再仔细看看其中的区别.

凭空想像不是能力,
只有不断尝试从错误中学习才能很好的进步.

10 楼

一言惊醒梦中人

我来回复

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